Bootstrap

编译ERROR C2440: 无法从“const char [47]”转换为“LPCTSTR”

error C2440: “=”: 无法从“const char [47]”转换为“LPCTSTR”
作者:ImMcss 欢迎转载,请以超链接形式保留原文地址。

在开发过程中经常会遇到使用LPCTSTR型作为输入参数的API函数。直接传字符串会出来"C2440"编译错误。
例如代码:
LPCTSTR   StrKey="HARDWARE//DESCRIPTION//System//CentralProcessor//0";
会出现下面的编译错误:
error C2440: “=”: 无法从“const char [47]”转换为“LPCTSTR”。
看看LPCTSTR在winnt.h中的定义
        typedef LPCWSTR PCTSTR, LPCTSTR;
        typedef __nullterminated CONST WCHAR *LPCWSTR, *PCWSTR;
        typedef wchar_t WCHAR;
从定义可以看出LPCTSTR就是WCHAR指针,因为wchar_t定义的是宽字符集,所以做如下修正:
LPCTSTR   StrKey=(WCHAR *)_T("HARDWARE//DESCRIPTION//System//CentralProcessor//0");


;