首页
社区
课程
招聘
[原创]请教《Windows编程循序渐进》中动态链接库的问题
发表于: 2008-6-3 16:27 5959

[原创]请教《Windows编程循序渐进》中动态链接库的问题

2008-6-3 16:27
5959
我在看您写的《Windows编程循序渐进》第16章时,用dumpbin查看编译好的DLLSample.dll发现里面的导出函数时发现FUN_Add 与FUN_Mul分别被改名为_FUN_Add@8 与_FUN_Mul@8,于是我在使用GetProcAddress(handle,"FUN_Add")时获取不到函数地址。如何解决?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 321
活跃值: (275)
能力值: ( LV13,RANK:1050 )
在线值:
发帖
回帖
粉丝
2
GetProcAddress(handle,"_FUN_Add@8")就可以了
2008-6-3 16:44
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
那怎样设定编译选项才能让动态链接库中的函数名与原函数名一致而不多出前缀和后缀呢?我用的编译环境是VC 2003.NET,函数在interface.h中的声明为extern "C" __declspec(dllexport) int WINAPI FUN_Add(int a,int b);在DLLMain中的实现为
int WINAPI FUN_Add(int a,int b){return a+b;}
2008-6-4 08:13
0
雪    币: 321
活跃值: (275)
能力值: ( LV13,RANK:1050 )
在线值:
发帖
回帖
粉丝
4
两种办法:
1。不使用 __declspec(dllexport) 导出,使用.def文件导出。
2。使用#pragma comment(linker,"/EXPORT  FUN_Add = _FUN_Add@8")
2008-6-4 08:50
0
游客
登录 | 注册 方可回帖
返回