最近用 MFC向导创建了一个MFC共享DLL,使用DEF文件导出函数,函数可以正常被显式调用,却不能隐式调用,在隐式调用链接时显视error LNK2019
于是我在调用函数的头文件中尝试使用_declsped(dllimport)、WINAPI以及其它关键字,但是都不能成功编译链接,请教高手这里为什么,及解决方法
于是我在调用函数的头文件中尝试使用_declsped(dllimport)、WINAPI以及其它关键字,但是都不能成功编译链接,请教高手这里为什么,及解决方法
调试欢乐多
隐式调用的时候必须包含相应的.h文件和.lib文件!
在你的程序中 加入#pragma comment(lib,"xxx.lib")//注意你的.lib文件的路径也可以在VC环境中设置
tools->option->Directories中设置要包含的头文件和库文件的路径,然后点OK,重新编译一下程序就可以了!希望对你有所帮助!
确认添加lib时候路径正确吗?
lib文件应该在环境变量设置的路径下
可能你的lib库位置不对~
麻烦大家能不能帮我看看
http://free.7host02.com/tomqyp/MyProjects.rar
http://free.7host02.com/tomqyp1/MyProjects.rar
http://www.websamba.com/tomqyp/MyProjects.rar
三个地址都是同一个文件 如果下不了就换一个试试
{
AfxMessageBox("OK");
return true;
}=============
#ifdef __cplusplus
extern "C" {
#endif
//----------------------------------------------------------------------------------
BOOL WINAPI test();
//---------------------------------------------------------------------------------
#ifdef __cplusplus
}
#endif===================bool VS BOOL~
typedef int BOOL;BOOL is a int~
bool is a standard c++ type~
首先我也觉得HEX484A48(HJH) 是对的
不过试了试将头文件改成BOOL WINAPI test(LPVOID pClass);并没有通过编译不知道是什么原因。
其次既然显示链接可以成功调用,而且我在VB测试中也成功调用,这证明成员函数是要以导出的,为什么就不能用隐式调用呢。能不能通过修改lib文件进行调用呢?
可惜小弟对lib文件格式不了解,还请高手指点一二。