精易论坛

标题: 易调用 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