
正文
易语言创建窗口go语言 易语言创建窗口go语言怎么用
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
易语言转go
你好,使用golang写动态库,再使用易语言写界面,肯定有不少人有这种想法吧;但中间有些坑,这里留下一些解决方法。
一、如何编译?
请先安装gcc编译器,选择32位
由于易语言只支持32位dll,使用64位会出错,例如找不到此函数;
必须先设置两项配置:set GOARCH=386,set CGO_ENABLED=1,用cmd;
编译命令:go build -ldflags "-s -w" -buildmode=c-shared -o dlldemo.dll dlldemo.go 。
二、形参与返回值
在go中,除了 string 特殊外,其他int、bool,等基本类型原本怎样还是怎样;
传 string 与返回值 string 都改成 *C.char 类型,其他基本类型不用改;
有三个方法比较重要,C.CString 转成c字符串,C.GoString 转成go字符串 , C.free 释放内存;
只要用到 C.CString 此方法,就必须记得释放内存。
三、内存泄漏
如果使用了 C.CString 却不使用 C.free ,内存暂用只会越来越大,最后奔溃;
释放内存时,请不要重复取地址,例如 unsafe.Pointer(xx变量) ,这样等于没释放;
也可能是vc6的原因,使用 defer 在即将出栈时释放,会造成易语言得不到返回值;
解决方法,声明全局变量,将结果赋值给全局变量,专门定义一个释放函数例如FreeAll() 用于释放!
四、如何调用
在填写dll命令时,请在填写,在库中对应命令名时,前面加个 @ ,不然会出现栈错误;
每次调用返回值是文本型dll命令时,请都使用前面准备的 FreeAll() 释放内存!
通过易语言的便捷,为自己的golang小项目加点gui吧,这里留下源码,给有需要的人。
希望能帮到你。
相关问答
Q1: 易语言如何创建启动窗口二
载入 (窗口1, , 真)'后面为真就是采用对话框方式,
载入(窗口1,,假)'后面为假两个窗口都可以任意点动
Q2: 易语言怎么开启窗口1?
有两种情况
1、当易语言系统编程环境里只打开了一个窗口时就会像易语言创建窗口go语言你的图片那样的显示,这个是属于正常情况。
2、你自己没有打开或新建工程!
新建工程操作方法易语言创建窗口go语言:
点击易语言系统的菜单栏 程序→新建→然后就会弹出新建窗口 选择 Windows窗口程序 然后点击 确定 按键就OK了!
打开工程操作方法:双击易语言工程文件 或 在 易语言系统的菜单栏 程序→打开→选择需要打开的工程文件!
Q3: 易语言如何嵌入一个窗口
插入 窗口 载入(窗口1,,假)之后代码如下:
.版本 2
.支持库 spec
.程序集 窗口程序集_窗口1
.子程序 _窗口1_创建完毕
时钟1.时钟周期 = 1
.子程序 _时钟1_周期事件
.判断开始 (_启动窗口.左边 > 窗口1.左边)
窗口1.左边 = _启动窗口.左边
.默认
调试输出 (_启动窗口.左边, 窗口1.左边)
.判断结束
.判断开始 (_启动窗口.顶边 > 窗口1.顶边)
窗口1.顶边 = _启动窗口.顶边
.默认
调试输出 (_启动窗口.左边, 窗口1.左边)
.判断结束
.判断开始 (_启动窗口.高度 < 窗口1.高度)
窗口1.高度 = _启动窗口.高度
.默认
调试输出 (_启动窗口.高度, 窗口1.高度)
.判断结束
.判断开始 (_启动窗口.宽度 < 窗口1.宽度)
窗口1.宽度 = _启动窗口.宽度
.默认
调试输出 (_启动窗口.宽度, 窗口1.宽度)
.判断结束
Q4: 易语言怎么写窗口化
.版本
2
.程序集
窗口程序集1
.程序集变量
hwnd,
整数型
.子程序
__启动窗口_创建完毕
hwnd
=
FindWindow
(“窗口类名”,
“窗口标题”)
MoveWindow
(hwnd,
“窗口新左边位置”,
“窗口新顶部位置”,
“窗口新高度”,
“窗口新宽度”,
1)
'
左边位置,顶部位置,新高度,新宽度参数皆为整数型,这里暂时用文本代替,请自行修改!
加入两条API即可,
Q5: 易语言怎么在写在窗口1创建窗口2的按钮
应该不能的吧,但是可以使用下面的代码实现大概你想要的样子,
.版本 2
.程序集 窗口程序集1
.子程序 _按钮1_被单击
按钮2.可视 = 真
.子程序 __启动窗口_创建完毕
按钮2.可视 = 假
可以先弄2个按钮,把按钮2的可视设置成假,这样窗口打开的时候就不会显示
然后在按钮1的下写上 按钮2.可视 = 真,这样就出来了
效果差不多的,
关于易语言创建窗口go语言和易语言创建窗口go语言怎么用的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







