首页新闻找找看学习计划

DllImport 异常Unable to find an entry point named 'GLY_DepositFixEvent' in DLL

0
悬赏园豆:100 [已解决问题] 解决于 2013-12-30 11:17

最近在做个项目,使用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. 运行代码出现异常

 

jerry liu的主页 jerry liu | 初学一级 | 园豆:50
提问于:2013-12-11 10:22
< >
分享
最佳答案
0

你仔细检查下,在你的运行目录下的 libglyde.dll 同你用 dumpbin 查看的 dll 是不是同一个. dll 查找位置,先从你的 .net exe 运行的目录开始,没有,再去系统目录。

收获园豆:80
Launcher | 高人七级 |园豆:45040 | 2013-12-11 17:15
其他回答(7)
0

DllImport 进来的另外几个函数能够调用吗?

BruceJia | 园豆:211 (菜鸟二级) | 2013-12-11 12:02
0

对应类型是不是不对?c/c++对应c#的类型 你看一下是不是不对?

http://www.cnblogs.com/szytwo/archive/2011/12/11/2283780.html你可以参考这个文章

收获园豆:10
wolfy | 园豆:2636 (老鸟四级) | 2013-12-11 13:02
0

哦,你估计是缺少相关的Dll,就是你调用的dll有依赖dll,你把依赖dll也考进去就行了

幕三少 | 园豆:1374 (小虾三级) | 2013-12-11 13:04
0

是不是做C++的人把函数名称隐藏掉了,编译后的函数的Entry_Point其实不是原本的函数名'GLY_DepositFixEvent' 

前些天做一个项目遇到过这种情况,函数名调不到,要使用一个什么工具查看DLL里的所有函数的信息,里面列的有实际的Entry_Point都是什么E100之类

Zux | 园豆:495 (菜鸟二级) | 2013-12-11 16:49
0

你的.net程序编译选项选成x86了么?

然后看.h文件里面,有个define,如果include了windows.h,则使用stdcall,这个确认一下你的CallingConvention是不是对的?

收获园豆:10
大佛脚下 | 园豆:216 (菜鸟二级) | 2013-12-11 22:23
0

用Dependency Walker看dll中的函数

谢小漫 | 园豆:436 (菜鸟二级) | 2013-12-12 10:13
0

直接用exescope查看,查看对应的函数参数类型是否匹配。直接明了

唐大侠 | 园豆:400 (菜鸟二级) | 2013-12-12 12:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册