我写了一个DLL,里面有个类,声明如下:
#define EXPORT_IMPORT
#ifdef EXPORT_IMPORT
#define ANTECK_AGENT __declspec(dllexport)
#else
#define ANTECK_AGENT __declspec(dllimport)
#endif
class ANTECK_AGENT CAgentHandler
{
//.......
};我在客户端引用这个DLL,调用里面的函数。客户端在调试环境下正常。
但我想发布这个客户端,将MFC设为“Use MFC in a static Library”,并把"Build->Set Active Configuration",选择Release,编译时,就产生了错误:error LNK2001: unresolved external symbol "public: int __thiscall CAgentHandler::LoginRequest(char *,char *,char *,long,struct HWND__ *)" (?LoginRequest@CAgentHandler@@QAEHPAD00JPAUHWND__@@@Z)请问是什么原因呢?VC不是使用__stdcall调用的话,DLL和客户端同样是用VC 写的,怎么设置才对呢?
#define EXPORT_IMPORT
#ifdef EXPORT_IMPORT
#define ANTECK_AGENT __declspec(dllexport)
#else
#define ANTECK_AGENT __declspec(dllimport)
#endif
class ANTECK_AGENT CAgentHandler
{
//.......
};我在客户端引用这个DLL,调用里面的函数。客户端在调试环境下正常。
但我想发布这个客户端,将MFC设为“Use MFC in a static Library”,并把"Build->Set Active Configuration",选择Release,编译时,就产生了错误:error LNK2001: unresolved external symbol "public: int __thiscall CAgentHandler::LoginRequest(char *,char *,char *,long,struct HWND__ *)" (?LoginRequest@CAgentHandler@@QAEHPAD00JPAUHWND__@@@Z)请问是什么原因呢?VC不是使用__stdcall调用的话,DLL和客户端同样是用VC 写的,怎么设置才对呢?
我用的是MFC Static DLL
只是说明你CAgentHandler::LoginRequest没有实现而已。