【发布时间】:2014-03-27 19:28:42
【问题描述】:
我用 C++ 创建了一个库,它公开了 c 风格的接口 API。一些参数是字符串,所以它们是char *。现在我知道它们应该都是 Unicode,但因为它是一个库,我不认为我想强迫用户使用决定与否。理想情况下,我认为最好使用TCHAR,这样我就可以为 unicode 代码和 ASCII 用户构建它。比我读到的this 它总体上反对这个想法。
作为 API 的示例,字符串是文件名或错误消息,如下所示。
void LoadSomeFile(char * fileName );
const char * GetErrorMsg();
我正在使用 c++ 和 STL。还有std::string vs std::wstring 的辩论。 就我个人而言,我真的很喜欢 MFC 的 CString 类,它很好地处理了这一切,但这意味着我必须将 MFC 仅用于它的字符串类。
现在我认为 TCHAR 对我来说可能是最好的解决方案,但我必须使用 CString(内部)才能使其工作吗?我可以将它与 STL 字符串一起使用吗?据我所见,它要么是字符串,要么是 wstring。
【问题讨论】:
标签: c++ unicode stl mfc static-libraries