3

以下にTCHARを定義します。

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

そして私は以下のようにコマパレしたい:

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

しかし、その後、エラーが発生します。

エラーC2446:==:const char*からTCHAR*への変換なし
エラーC2440:'==':'constchar[14]'から'TCHAR[260]'への変換できません

4

2 に答える 2

8

"NDSClient.exe"const char*Windowsの文字列です。それをにしたい場合は、マクロconst TCHAR*を使用する必要があります。また、などの同等の関数を使用してTEXT文字列を比較することはできません。==TCHAR_tcscmp

于 2010-11-17T06:04:49.330 に答える
7

また、使用することができます。L"some string"TCHAR* を作成します。ただし、TCHAR* の代わりに(必要に応じて andstd::wstringのアナログ) を使用することをお勧めします。std::stringstd::string#include <string>

例:

#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;
}
于 2010-11-17T08:41:29.597 に答える