我有2个MFC项目。
库项目使用多字节字符集。
可执行项目使用Unicode字符集。
我只编写了库项目,必须在可执行文件中使用它。 其中一个库的函数返回一个CString。 当我尝试将该CString放入我的unicode项目中的变量并进行编译时 我明白了:
Error 3 error LNK2001: unresolved external symbol "public: class
ATL::CStringT<wchar_t,class StrTraitMFC_DLL<wchar_t,class
ATL::ChTraitsCRT<wchar_t> > > __thiscall CTextDisplay::GetString(void)"
(?GetString@CTextDisplay@@QAE?AV?$CStringT@_WV? $StrTraitMFC_DLL@_WV?
$ChTraitsCRT@_W@ATL@@@@@ATL@@XZ)
我不介意转换任何项目。我只想让一种方法让库能够将字符串返回到可执行项目。 将项目切换到另一个字符集不是一种选择,因为它们都是巨大的。
提前致谢。
答案 0 :(得分:0)
实际上没有返回CString这样的东西。有CStringA和CStringW&#39; s,听起来你正在收到一个并想要另一个。您需要使用MultiByteToWideChar和/或WideCharToMultiByte进行转换。
http://msdn.microsoft.com/en-us/library/windows/desktop/dd319072(v=vs.85).aspx