错误C2446:==:从const char *到TCHAR没有转换*

我有一个TCHAR定义如下:

TCHAR szProcessName[MAX_PATH] = TEXT("<unknown>"); 

我想comapare如下:

 if(szProcessName == "NDSClient.exe") { } 

但是,我得到的错误:

错误C2446:==:从const char *到TCHAR没有转换*
错误C2440:'==':不能从'const char [14]'转换为'TCHAR [260]'

"NDSClient.exe"是Windows上的一个const char*字符串。 如果你想让它成为一个const TCHAR*那么你需要使用TEXT宏。 另外,你不能使用比较字符串==使用等价的TCHAR函数,比如_tcscmp

也可以使用。 L"some string"使TCHAR *。 但是我建议你使用std::wstring (类似于std::string ,而std::string需要#include <string> )而不是TCHAR *。

例:

 #include <windows.h> #include <string> #include <iostream> using namespace std; int main() { wstring s = TEXT("HELLO"); wstring ss = L"HELLO"; if(s == ss) cout << "hello" << endl; return 0; }