【发布时间】:2011-07-26 10:36:37
【问题描述】:
我有以下代码将检索到的火线板名称分配给
TCHAR 变量。
TCHAR* firewireName = new TCHAR[wcslen(variantProperty.bstrVal)+1];
_stprintf(firewireName, _T("%S"), variantProperty.bstrVal);
VariantClear(&variantProperty);
但是当火线名称是俄语时LSI 1394 OHCI совместимый хост-контроллер
我的firewireName 变量只包含LSI 1394 OHCI
我是C++的n00b,代码有什么问题吗?
【问题讨论】:
-
绝对错误的一件事是您将
TCHAR与wcslen混合在一起,这是一个仅限widechar 的函数。要么使用相应的TCHAR版本,要么(也许更好?)删除所有TCHAR引用,让您的应用程序仅使用 Unicode。
标签: c++ string visual-c++ unicode