|
|
|
@ -1,39 +1,62 @@
|
|
|
|
|
# go-dde
|
|
|
|
|
|
|
|
|
|
#### 介绍
|
|
|
|
|
{**以下是 Gitee 平台说明,您可以替换此简介**
|
|
|
|
|
Gitee 是 OSCHINA 推出的基于 Git 的代码托管平台(同时支持 SVN)。专为开发者提供稳定、高效、安全的云端软件开发协作平台
|
|
|
|
|
无论是个人、团队、或是企业,都能够用 Gitee 实现代码托管、项目管理、协作开发。企业项目请看 [https://gitee.com/enterprises](https://gitee.com/enterprises)}
|
|
|
|
|
go 语言来实现调用windowapi,实现动态数据交换 Dynamic Data Exchange
|
|
|
|
|
|
|
|
|
|
#### 软件架构
|
|
|
|
|
软件架构说明
|
|
|
|
|
go
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### 安装教程
|
|
|
|
|
|
|
|
|
|
1. xxxx
|
|
|
|
|
2. xxxx
|
|
|
|
|
3. xxxx
|
|
|
|
|
```
|
|
|
|
|
go get gitee.com/forget_the_bright/go-dde
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
#### 使用说明
|
|
|
|
|
|
|
|
|
|
1. xxxx
|
|
|
|
|
2. xxxx
|
|
|
|
|
3. xxxx
|
|
|
|
|
|
|
|
|
|
#### 参与贡献
|
|
|
|
|
|
|
|
|
|
1. Fork 本仓库
|
|
|
|
|
2. 新建 Feat_xxx 分支
|
|
|
|
|
3. 提交代码
|
|
|
|
|
4. 新建 Pull Request
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### 特技
|
|
|
|
|
|
|
|
|
|
1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md
|
|
|
|
|
2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com)
|
|
|
|
|
3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目
|
|
|
|
|
4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
|
|
|
|
|
5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
|
|
|
|
|
6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
|
|
|
|
|
```这只是个简单的例子```
|
|
|
|
|
```
|
|
|
|
|
func runClient() {
|
|
|
|
|
ddecli := dde.DdeClient{}
|
|
|
|
|
ddecli.AppName = "Server"
|
|
|
|
|
ddecli.TopicName = "MyTopic"
|
|
|
|
|
ddecli.Items = []VString{"MyItem0", "MyItem1", "MyItem2", "MyItem3", "MyItem4", "MyItem5", "MyItem6"}
|
|
|
|
|
ddecli.Run()
|
|
|
|
|
for i := 0; i < len(ddecli.Items); i++ {
|
|
|
|
|
data := ddecli.Request(ddecli.HszItem[i])
|
|
|
|
|
fmt.Printf("data: %v\n", data)
|
|
|
|
|
ddecli.Poke(ddecli.HszItem[i], data)
|
|
|
|
|
time.Sleep(1e9)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
func runServer() {
|
|
|
|
|
ddeser := dde.DdeServer{}
|
|
|
|
|
ddeser.AppName = "Server"
|
|
|
|
|
ddeser.TopicName = "MyTopic"
|
|
|
|
|
ddeser.Items = []VString{"MyItem0", "MyItem1", "MyItem2", "MyItem3", "MyItem4", "MyItem5", "MyItem6"}
|
|
|
|
|
//defer ddeser.DestoryServer()
|
|
|
|
|
ddeser.RunServer()
|
|
|
|
|
}
|
|
|
|
|
func main() {
|
|
|
|
|
//runClient()
|
|
|
|
|
runServer()
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
```server 的回调函数可以自己定义```
|
|
|
|
|
```
|
|
|
|
|
func MetaCallBackfunc(wType UINT, wFmt UINT, hConv HCONV, hsz1 HSZ, hsz2 HSZ, hData HDDEDATA, dwData1 ULONG_PTR, dwData2 ULONG_PTR) HDDEDATA {
|
|
|
|
|
//do something
|
|
|
|
|
return 0
|
|
|
|
|
}
|
|
|
|
|
func runServer() {
|
|
|
|
|
ddeser := dde.DdeServer{}
|
|
|
|
|
ddeser.AppName = "Server"
|
|
|
|
|
ddeser.TopicName = "MyTopic"
|
|
|
|
|
ddeser.Items = []VString{"MyItem0", "MyItem1", "MyItem2", "MyItem3", "MyItem4", "MyItem5", "MyItem6"}
|
|
|
|
|
//defer ddeser.DestoryServer()
|
|
|
|
|
ddeser.Callback = MetaCallBackfunc
|
|
|
|
|
ddeser.RunServer()
|
|
|
|
|
}
|
|
|
|
|
func main() {
|
|
|
|
|
runServer()
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|