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

发布于 2024-10-02 11:47:10 字数 351 浏览 4 评论 0原文

我有一个 TCHAR 定义如下:

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

并且我想进行如下比较:

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

但是随后我收到错误:

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

I have a TCHAR define below:

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

and I want to comapare as below:

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

But then I am getting the errors:

error C2446: == : no conversion from const char * to TCHAR *
error C2440: '==' : cannot convert from 'const char [14]' to 'TCHAR [260]'

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

你的呼吸 2024-10-09 11:47:10

"NDSClient.exe" 是 Windows 上的 const char* 字符串。如果您希望它成为 const TCHAR* 那么您需要使用 TEXT 宏。此外,您不能使用 == 比较字符串,而是使用等效的 TCHAR 函数,例如 _tcscmp

"NDSClient.exe" is a const char* string on windows. If you want it to become a const TCHAR* then you need to use the TEXT macro. Also, you can not compare strings using == use a equivalent TCHAR function such as _tcscmp.

吖咩 2024-10-09 11:47:10

也可以使用。 L"some string" 来生成 TCHAR*。但我建议您使用 std::wstring (类似于 std::string 并且 std::string 需要 #include) 而不是 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;
}

Also you can use. L"some string" to make TCHAR*. But I suggest you to use std::wstring (analog of std::string and as std::string needs #include <string>) instead of TCHAR*.

example:

#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;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文