代码如下.dll中定义void __declspec(dllexport) GetStringName(wchar_t* getStr)
{
getStr = L"ssssssssssss";
}MFC中声明
#pragma comment(lib, "debug/TestWCharDll.lib")
void __declspec(dllimport) GetStringName(wchar_t* getStr);
void __declspec(dllimport) resetName(string& namestr);调用:
wchar_t tempbuf[20]={(L"sssssssssssss")};
GetStringName(tempbuf);编译错误:
TestWcharInDll error LNK2019: unresolved external symbol "__declspec(dllimport) void __cdecl GetStringName(wchar_t *)" (__imp_?GetStringName@@YAXPA_W@Z) referenced in function "public: void __thiscall CTestWcharInDllDlg::OnBnClickedOk(void)" (?OnBnClickedOk@CTestWcharInDllDlg@@QAEXXZ)请高手解答一下.

解决方案 »

  1.   

    是不是你的dll是使用c写的啊??因为感觉是你的符号找不到诶
    还有就是那个
    #pragma comment(lib, "debug/TestWCharDll.lib")  
    中的lib的目录是对的吗????
      

  2.   

    函数要实现取值应该这样. GetStringName(wchar_t*& getStr)   我这里只是想测一下宽字符. 
    困挠很久了.
      

  3.   

    函数要实现取值应该这样. GetStringName(wchar_t*& getStr)   我这里只是想测一下宽字符. 
    困挠很久了.
      

  4.   

    目录是对的. 若改成把wchar_t 改成 char 就完全没有问题.
      

  5.   

    都是C++, dll 用的c++ 标准dll.
      

  6.   

    我知道了. C++有关键字wchar_t  而C没有 它是自定义的 #typedefin unsiged short wchar_t.统一调用加上:
    extern "C" {}
    就行了.