精易论坛

标题: 火山pc调用DLL报错问题 [打印本页]

作者: 心寒中Q    时间: 2021-12-24 00:23
标题: 火山pc调用DLL报错问题
如图 易语言里面可以运行不报错  火山直接报错 不知道怎么弄了 请教各位大师

QQ截图20211224002039.png (39.15 KB, 下载次数: 0)

QQ截图20211224002039.png

QQ截图20211224001919.png (62.06 KB, 下载次数: 0)

QQ截图20211224001919.png

作者: 大司命    时间: 2021-12-24 00:29

你火山上用的是64位!切换成32位试试~
作者: 心寒中Q    时间: 2021-12-24 01:00
大司命 发表于 2021-12-24 00:29
你火山上用的是64位!切换成32位试试~

编译设置的是32位的 没有错呀
作者: 黄福寿    时间: 2021-12-24 14:48
动态调用,调用方式改为被调用方自己平栈,调用方自己平栈会崩溃,易语言的调用约定和火山不一样
作者: 心寒中Q    时间: 2021-12-24 19:46
黄福寿 发表于 2021-12-24 14:48
动态调用,调用方式改为被调用方自己平栈,调用方自己平栈会崩溃,易语言的调用约定和火山不一样 ...

这个库是C++写的
作者: 心寒中Q    时间: 2021-12-24 19:46
黄福寿 发表于 2021-12-24 14:48
动态调用,调用方式改为被调用方自己平栈,调用方自己平栈会崩溃,易语言的调用约定和火山不一样 ...

能不能给个栗子
作者: 黄福寿    时间: 2021-12-26 14:48
心寒中Q 发表于 2021-12-24 19:46
能不能给个栗子

用LoadLibraryA获得dll句柄,再用GetProcAddress获得函数地址,声明一个指针类型的变量,把函数地址转为指针类型变量,就可以直接调用了,易语言的传址,就是会自动声明一个变量,然后返回变量的值,这个属于高度封装,火山不支持这样,只能自己申请变量,把变量地址转过去
作者: 呵呵仙    时间: 2022-1-17 23:38
传址的,火山方用到取变量地址()了没?




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4