假设我有这个:
LPTSTR MyString = _T("A string");
void SomeFunction(LPCWSTR param);
我可以使用其中一个ATL 转换宏, CT2CW
,并且该函数按预期工作:
SomeFunction(CT2CW(MyString));
但是,如果我有这样的事情:
LPWSTR WString = CT2CW(MyString); // or CT2W, it doesn't matter
现在WString
不包含我期望的内容;它似乎只是包含垃圾。我确信这是一些时髦的指针业务,但我很难过。