代码之家  ›  专栏  ›  技术社区  ›  Simsons

错误C2446:==:没有从const char*到tchar的转换*

  •  2
  • Simsons  · 技术社区  · 14 年前

    我有一个tchar定义如下:

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

    我要做的事情如下:

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

    但是我得到了错误:

    错误C2446:==:没有从const char*到tchar的转换*
    错误C2440:“==”:无法从“const char[14]”转换为“tchar[260]”

    2 回复  |  直到 14 年前
        1
  •  8
  •   Naveen    14 年前

    "NDSClient.exe" 是一个 const char* 窗口上的字符串。如果你想成为 const TCHAR* 然后你需要使用 TEXT 宏。此外,不能使用 == 使用等价物 TCHAR 功能,例如 _tcscmp .

        2
  •  5
  •   Armen Tsirunyan    14 年前

    也可以使用。 L"some string" 制造TChar*。但我建议你用 std::wstring (模拟 std::string 作为 STD::字符串 需要 #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;
    }