2017-09-08 91 views
-2

我使用这个:随机wcscmp参数刚停止工作?

const wchar_t TARGET_NAME[] = L"ac_client.exe"; 
if (!wcscmp(pe32.szExeFile, TARGET_NAME)) 

找到一个过程,比较名称与它们匹配,PE32是一个PROCESSENTRY32。它曾经工作,但随机它无缘无故地停下来。现在确实下PE32红色下划线,说CHAR *“的类型参数‘’是类型的参数不兼容的‘常量为wchar_t *’”

我真的不明白。这还有其他什么吗?我甚至做过

#include <wchar.h> 

以防万一。

+2

你删除或取消定义'UNICODE'宏? –

+0

您应该确保您的项目配置为使用Unicode字符集 – Asesh

+0

嗯,是的。我不得不添加_CRT_SECURE_NO_WARNINGS,并没有意识到我取代了所有的默认值。 – Locrian7

回答

1

作为记载,在PROCESSENTRY32结构或者扩展到PROCESSENTRY32W,如果UNICODE被定义,或以其它方式PROCESSENTRY32A改变了预处理符号。该错误不只是弹出“随机”。如果你希望你的代码编译,而不管编译环境,明确使用Unicode名称(PROCESSENTRY32WProcess32FirstW)。