多字节CString到Unicode MFC

时间:2013-05-23 21:31:02

标签: mfc cstring multibyte unicode-string

我有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)

我不介意转换任何项目。我只想让一种方法让库能够将字符串返回到可执行项目。 将项目切换到另一个字符集不是一种选择,因为它们都是巨大的。

提前致谢。

1 个答案:

答案 0 :(得分:0)

实际上没有返回CString这样的东西。有CStringA和CStringW&#39; s,听起来你正在收到一个并想要另一个。您需要使用MultiByteToWideChar和/或WideCharToMultiByte进行转换。

http://msdn.microsoft.com/en-us/library/windows/desktop/dd319072(v=vs.85).aspx