我写了一个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 写的,怎么设置才对呢?

解决方案 »

  1.   

    你这里导出了类,写的是扩展DLL?还有CAgentHandler::LoginRequest在哪里?没写清楚
      

  2.   

    CAgentHandler::LoginRequest是在DLL里面的一个函数,即是这个DLL里,有一个CAgnetHandler类,里面有一个成员函数LoginRequest
    我用的是MFC Static DLL
      

  3.   

    error LNK2001: unresolved external symbol "public: int __thiscall CAgentHandler::LoginRequest(char *,char *,char *,long,struct HWND__ *)" (?LoginRequest@CAgentHandler@@QAEHPAD00JPAUHWND__@@@Z)
    只是说明你CAgentHandler::LoginRequest没有实现而已。
      

  4.   

    release版没有添加LIB文件?