精易论坛
标题:
易调用 c++ dll
[打印本页]
作者:
softcheng
时间:
2017-8-23 16:33
标题:
易调用 c++ dll
如题,我用 c++ 写了dll 调用约定 __stdcall ,c++ 自己能调用,但是易调用 失败,返回 -1 ,不是说调用约定就是 __stdcall 吗,代码如下
这是调用 dll 地方
path = 取运行目录 () + “\libFile.dll”
hMoudle = 装载 (path, “SetLibFile”, 句柄)
error = GetLastError ()
调试输出 (hMoudle)
.子程序 装载, 整数型, 公开, 调用失败返回-1,调用成功返回DLL函数指针。
.参数 Dll路径, 文本型, , DLL完整路径
.参数 函数名称, 文本型, , 要调用的子程序命令名称
.参数 模块句柄, 整数型, 参考, 需要释放的话,使用:FreeLibrary (模块句柄)
.局部变量 函数地址, 整数型
模块句柄 = LoadLibraryA (Dll路径) ' 载入指定的动态链接库,并将它映射到当前进程使用的地址空间
.如果真 (模块句柄 = 0) ' 载入失败,返回-1
返回 (-1)
.如果真结束
函数地址 = GetProcAddress (模块句柄, 函数名称) ' 取DLL函数指针
.判断开始 (函数地址 ≠ 0) ' 指针获取成功,返回地址;获取失败,释放动态链接库
返回 (函数地址)
.默认
FreeLibrary (模块句柄) ' 释放动态链接库
.判断结束
返回 (-1)
error 得到 126
不知道哪里错了
作者:
boxxie
时间:
2017-8-23 16:38
不知道,所以帮不上楼主
作者:
softcheng
时间:
2017-8-23 18:11
知道了,c++ 要静态编译,因为易的那台机器少库,本身加载不到,这个问题解决了,那如何调用 函数,函数参数是字符串类型 ,怎么调用?
作者:
softcheng
时间:
2017-8-24 21:52
结贴,搞定,
欢迎光临 精易论坛 (https://125.confly.eu.org/)
Powered by Discuz! X3.4