调用DLL中的函数,提示
Linking...
testusbDlg.obj : error LNK2001: unresolved external symbol _CT_open@12
testusbDlg.obj : error LNK2001: unresolved external symbol _CT_close@4我已经在project->setting->link加.lib了。
包含dll的api的头文件:
#include <windows.h>
#ifdef __cplusplus
extern "C"{
#endif_declspec(dllexport) HANDLE WINAPI CT_open(); _declspec(dllexport) int WINAPI CT_close(); #ifdef __cplusplus
}
#endif
这个文件也加到project中了。dll中的.def文件:
LIBRARY "wdhidu"
DESCRIPTION 'wdhidu Windows Dynamic Link Library'EXPORTS
CT_open
CT_close到底是哪出错了哪?是不是.def错了??
搞了一天也没搞明白,望各位大虾指教!谢谢!!!!
Linking...
testusbDlg.obj : error LNK2001: unresolved external symbol _CT_open@12
testusbDlg.obj : error LNK2001: unresolved external symbol _CT_close@4我已经在project->setting->link加.lib了。
包含dll的api的头文件:
#include <windows.h>
#ifdef __cplusplus
extern "C"{
#endif_declspec(dllexport) HANDLE WINAPI CT_open(); _declspec(dllexport) int WINAPI CT_close(); #ifdef __cplusplus
}
#endif
这个文件也加到project中了。dll中的.def文件:
LIBRARY "wdhidu"
DESCRIPTION 'wdhidu Windows Dynamic Link Library'EXPORTS
CT_open
CT_close到底是哪出错了哪?是不是.def错了??
搞了一天也没搞明白,望各位大虾指教!谢谢!!!!
_CT_close@4
你的这两个函数是带参数的而你导出的时候没有待参数阿_declspec(dllexport) HANDLE WINAPI CT_open(); _declspec(dllexport) int WINAPI CT_close(); 这两句已经具有了导出功能,把你的参数加上,再导出看看
_CT_close@4
你的这两个函数是有参数的_declspec(dllexport) HANDLE WINAPI CT_open(); _declspec(dllexport) int WINAPI CT_close(); 导出时没有加参数,加上参数看看
另:回独狼
导出函数是有参数的,我省略了。
我的直觉是不是.def中导出的函数名不对阿?
我已经把.lib考到工程目录下了,所以应该不存在什么路径的问题。搞不懂哪里出问题了??
======================================
这个说法可不对,编译通过是因为包含了头文件,和LIB没有关系哦。
怎么改都还是不能识别他们。
应该是.lib的错误,就不知道错哪了。
包含dll的api的头文件中去掉
#ifdef __cplusplus
extern "C"{
#endif
在函数生命和定义时,加上_stdcall就可以了!
谢谢大家的帮忙!!!
给分!!