【发布时间】:2015-03-18 03:20:14
【问题描述】:
假设我有这个:
LPTSTR MyString = _T("A string");
void SomeFunction(LPCWSTR param);
我可以使用ATL conversion macros、CT2CW 之一,并且该功能按预期工作:
SomeFunction(CT2CW(MyString));
但是,如果我有这样的事情:
LPWSTR WString = CT2CW(MyString); // or CT2W, it doesn't matter
现在WString 不包含我所期望的;它似乎只是包含垃圾。我确信这是一些时髦的指针业务,但我很难过。
【问题讨论】:
-
你为什么要和
TCHAR混在一起根本?阅读stackoverflow.com/questions/234365/is-tchar-still-relevant/… 无论如何,WString以何种方式不包含您的预期?是在下一行出现这种情况,还是在返回后才出现这种情况? -
@Deduplicator 我正在修改一个庞大的现有代码库。除非我无缘无故地重做和重新测试大量代码,否则我对此无能为力。
WString包含完全乱码的数据。 -
好吧,祝你好运和毅力比。总是有这样的情况......