最近在做个项目,使用c++的DLL,有个方法在头文件里能找到,使用dumpbin -exports 也能看到,但就是运行时出现异 常:Unable to find an entry point named 'GLY_DepositFixEvent' in DLL 'libglyde.dll'.
给高手们贴下截图,帮我看看,谢谢了
1. 头文件
2. 使用dumpbin -exports libglyde.dll
3. 我的代码DllImport
4. 运行代码出现异常
你仔细检查下,在你的运行目录下的 libglyde.dll 同你用 dumpbin 查看的 dll 是不是同一个. dll 查找位置,先从你的 .net exe 运行的目录开始,没有,再去系统目录。
DllImport 进来的另外几个函数能够调用吗?
对应类型是不是不对?c/c++对应c#的类型 你看一下是不是不对?
http://www.cnblogs.com/szytwo/archive/2011/12/11/2283780.html你可以参考这个文章
哦,你估计是缺少相关的Dll,就是你调用的dll有依赖dll,你把依赖dll也考进去就行了
是不是做C++的人把函数名称隐藏掉了,编译后的函数的Entry_Point其实不是原本的函数名'GLY_DepositFixEvent'
前些天做一个项目遇到过这种情况,函数名调不到,要使用一个什么工具查看DLL里的所有函数的信息,里面列的有实际的Entry_Point都是什么E100之类
你的.net程序编译选项选成x86了么?
然后看.h文件里面,有个define,如果include了windows.h,则使用stdcall,这个确认一下你的CallingConvention是不是对的?
用Dependency Walker看dll中的函数
直接用exescope查看,查看对应的函数参数类型是否匹配。直接明了