紧急求助~ ~~~ 汇编写的DLL C++调用的问题
c++吧
全部回复
仅看楼主
level 4
汇编写的DLL,有一个函数是stdcall的 叫xxx,xxx有一个DWORD参数
我在C++里这样导入
extern "C"__dec
lsp
ec(dllimport) DWORD __stdcall xxx(DWORD x);
编译不过呀........
[抓狂]
加不加extern "C"都一样
2012年12月10日 09点12分 1
level 4
DLL的导出函数就叫xxx,而C++编译时给改成__imp__xxx@4
结果就是“无法解析的外部符号”了
[摇]
2012年12月10日 09点12分 2
level 4
更想不明白的是,BitBlt函数在gdi32中的名称就是BitBlt
而wingdi.h中就是WINGDIAPI BOOL WINAPI BitBlt(....);
WINGDIAPI 就是
__declspec(dllimport),我自己的DLL怎么就不行了
2012年12月10日 10点12分 3
level 11
[狂汗]
2012年12月10日 10点12分 4
[抛媚眼]
2012年12月10日 10点12分
level 13
两种方法吧,动态调用简单
HMODULE h= Loadlibrary("你的dll路径");
(DWORD(__stdcall*)(DWORD)) proc = (DWORD(__stdcall*)(DWORD))GetProcAddress(h, "xxx");
静态调用,自己写个def,然后用link.exe生成个lib,你的工程引用这个lib,就行了
2012年12月10日 10点12分 5
系统API的声明也是用 __declspec(dllimport)呀,为什么系统API就能编过?
2012年12月10日 10点12分
回复 仓义依然潇洒 :你不连gdi32.lib试试
2012年12月10日 10点12分
level 4
是我自己写错了.............
DLL的参数列表不对,C++调用的时候自然找不到
[抓墙]
2012年12月10日 10点12分 6
level 4
问题全部解决~
2012年12月10日 10点12分 7
1