我有一个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; }