我在下面定义了一个TCHAR:
TCHAR szProcessName[MAX_PATH] = TEXT("<unknown>");
我希望如下:
if(szProcessName == "NDSClient.exe")
{
}
但后来我收到了错误:
错误C2446:==:没有从const char *转换为TCHAR *
错误C2440:'==':无法从'const char [14]'转换为'TCHAR [260]'
答案 0 :(得分:8)
"NDSClient.exe"
是Windows上的const char*
字符串。如果您希望它成为const TCHAR*
,那么您需要使用TEXT
宏。另外,您无法使用==
使用等效TCHAR
函数比较字符串,例如_tcscmp
。
答案 1 :(得分:5)
你也可以使用。 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;
}