1

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

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

提前致谢。

4

1 回答 1

0

确实没有返回 CString 这样的事情。有 CStringA 和 CStringW,听起来您正在接收一个并想要另一个。您将需要使用 MultiByteToWideChar 和/或 WideCharToMultiByte 进行转换。

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

于 2013-05-24T02:02:11.227 回答