我有一个TCHAR定义如下:
TCHAR szProcessName[MAX_PATH] = TEXT("<unknown>");
我想说明如下:
if(szProcessName == "NDSClient.exe")
{
}
但接下来我会发现错误:
error C2446:==:没有从const *到TCHAR *的转换
错误C2440:'==‘:无法从'const 14’转换为'TCHAR 260'
发布于 2010-11-17 06:04:49
"NDSClient.exe"
是windows上的const char*
字符串。如果您希望它成为一个const TCHAR*
,那么您需要使用TEXT
宏。此外,您不能使用==
比较字符串,可以使用等效的TCHAR
函数(如_tcscmp
)。
发布于 2010-11-17 08:41:29
你也可以用。L"some string"
制作TCHAR*。但我建议您使用std::wstring
(模拟std::string
和as 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;
}
https://stackoverflow.com/questions/4201893
复制相似问题