本节探讨火山exe如何向易语言DLL传递文本类型的参数数据
先复习以下之前的课程
024:【火山调用DLL】
火山代码:
[voldev] 纯文本查看 复制代码 <火山程序 类型 = "通常" 版本 = 1 />
方法 按钮_被单击 <接收事件 类型 = 整数 注释 = "当按钮被单击后发送此事件">
参数 来源对象 <类型 = 按钮 注释 = "提供事件产生的具体来源对象">
参数 标记值 <类型 = 整数 注释 = "用户调用\"挂接事件\"命令时所提供的\"标记值\"参数值,非此方式挂接事件则本参数值固定为0.">
{
如果 (来源对象 == 按钮1)
{
test ("测试")
}
返回 (0)
}
方法 test <公开 静态 @视窗.输入 = "test.dll" @输出名 = "test">
参数 文本1 <类型 = 文本型>
{
}
——————————————————————————————————————
易语言dll的代码
_____________________________________________________
然后编译调试:
首先这个信息框功能是易语言test.dll中的,然后出现了乱码,这是因为火山中的“测试文本”是UTF-16的,代表的字节集是{75,109,213,139,0,0},而这段字节集在易语言里面是使用GBK编码规则进行渲染的,所以我们需要进行字节集转换
我们将易语言DLL进行如下写法(调用了精易模块)
文本1 = 编码_Unicode到Ansi (到字节集 (接收的文本1 )) 信息框 (文本1, 0, , )
效果:
————————————————————————————————————————————————
总结:以火山(MFC)为exe,调用易语言的DLL,可以直接传递文本数据,但是需要进行编码转换
(点击返回课程目录:https://shuxiangyage.net/forum.php?mod=viewthread&tid=1134)
|