首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >错误C2446:==:没有从const *到TCHAR *的转换

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

Stack Overflow用户
提问于 2010-11-17 06:00:19
回答 2查看 11.6K关注 0票数 3

我有一个TCHAR定义如下:

代码语言:javascript
运行
复制
 TCHAR szProcessName[MAX_PATH] = TEXT("<unknown>");

我想说明如下:

代码语言:javascript
运行
复制
if(szProcessName == "NDSClient.exe")
{
} 

但接下来我会发现错误:

error C2446:==:没有从const *到TCHAR *的转换

错误C2440:'==‘:无法从'const 14’转换为'TCHAR 260'

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-17 06:04:49

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

票数 8
EN

Stack Overflow用户

发布于 2010-11-17 08:41:29

你也可以用。L"some string"制作TCHAR*。但我建议您使用std::wstring (模拟std::string和as std::string需要#include <string>),而不是使用TCHAR*。

示例:

代码语言:javascript
运行
复制
#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;
}
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4201893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档