错误 C2446:==:没有从 const char * 到 TCHAR * 的转换
我有一个 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
"NDSClient.exe"
是 Windows 上的const char*
字符串。如果您希望它成为const TCHAR*
那么您需要使用TEXT
宏。此外,您不能使用==
比较字符串,而是使用等效的TCHAR
函数,例如_tcscmp
。"NDSClient.exe"
is aconst char*
string on windows. If you want it to become aconst TCHAR*
then you need to use theTEXT
macro. Also, you can not compare strings using==
use a equivalentTCHAR
function such as_tcscmp
.也可以使用。
L"some string"
来生成 TCHAR*。但我建议您使用std::wstring
(类似于std::string
并且std::string
需要#include
) 而不是 TCHAR*。例子:
Also you can use.
L"some string"
to make TCHAR*. But I suggest you to usestd::wstring
(analog ofstd::string
and asstd::string
needs#include <string>
) instead of TCHAR*.example: