我有一个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
复制相似问题