最简单的英文歌词:求教Win32调用DLL里函数得问题!
来源:百度文库 编辑:中科新闻网 时间:2024/08/29 02:14:17
我用得MASM EditPlus v 1004开发Win32,现在生成了pcicard.dll文件,还有pcicard.lib。
我要隐式调用pcicard.dll里面提供得函数pcicard_ioread。
现在我写了pcicard.inc文件,
里面说明pcicard_ioread proto :dword,:dword
把这个pcicard.inc文件放在MASM32下得include文件夹下,把pcicard.lib文件放在MASM32下得lib文件夹下,调用的.asm文件头也声明了include pcicard.inc
IncludeLib pcicard.lib。并且该.asm文件为了保险也直接放在MASM32下,但是编译链接的时候出现了错误
错误如下:
error LNK2001: unresolved external symbol _pcicard_iowrite@
E:\MASM32\gui.exe : fatal error LNK1120: 1 unresolved externals
请问大侠我哪边出错了,谢谢了
我要隐式调用pcicard.dll里面提供得函数pcicard_ioread。
现在我写了pcicard.inc文件,
里面说明pcicard_ioread proto :dword,:dword
把这个pcicard.inc文件放在MASM32下得include文件夹下,把pcicard.lib文件放在MASM32下得lib文件夹下,调用的.asm文件头也声明了include pcicard.inc
IncludeLib pcicard.lib。并且该.asm文件为了保险也直接放在MASM32下,但是编译链接的时候出现了错误
错误如下:
error LNK2001: unresolved external symbol _pcicard_iowrite@
E:\MASM32\gui.exe : fatal error LNK1120: 1 unresolved externals
请问大侠我哪边出错了,谢谢了
pcicard.lib 中没有这个函数或者是参数不正确。
例如:
lib 导出的是这个函数 (C++)
__declspec(dllimport)
BOOL strieqA(LPCTSTR lpStringA, LPCTSTR lpStringB);
但是你连接的是
__declspec(dllimport) BOOL strieqA(LPCSTR lpStringA, LPCTSTR lpStringB);//Error LPCSTR != LPCTSTR
隐式调用必须全字匹配,不能改变。
我看你最好用 C++ 开发,这样不容易出错。