VS2005/WinCE6.0(SDK)环境.使用 Use MFC in a Shared DLL 的工程,
程序中加了以下代码,linking...时, 就会出现以下错误, 不加,就不会出错,为什么? 如何解决.
使用 Use MFC in a Static Library 的工程,
程序中加了以下代码,不会出错.
代码:
CString str;
static HINSTANCE  m_hSrc;str.LoadString(m_hSrc, IDS_SOFTKEY_SELECT);
出错信息:
1>XXXXXXXX.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: int __cdecl ATL::CStringT<wchar_t,class StrTraitMFC_DLL<wchar_t,class ATL::ChTraitsOS<wchar_t> > >::LoadStringW(struct HINSTANCE__ *,unsigned int)" (__imp_?LoadStringW@?$CStringT@_WV?$StrTraitMFC_DLL@_WV?$ChTraitsOS@_W@ATL@@@@@ATL@@QAAHPAUHINSTANCE__@@I@Z) referenced in function __unwind$90047

解决方案 »

  1.   

    如果你要共享DELL要初始化共享数据,并加一条语句,如:
    #pragma data_seg("SharedDataName")
    HANDLE HRS=NULL;
    #pragma data_seg()
    #pragma comment(linker,"/section:.SharedDataName,rws")
    个人建议别共享,因为初始化比较麻烦
      

  2.   

    BOOL LoadString( UINT nID );
    msdn里用法,检查自己的用法是否正确
      

  3.   

    不是少头文件,链接错误,一般是找不到链接所需的lib文件。
    楼主的情况可能是只有mfc的静态链接Lib文件,没有动态链接的Lib.