首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将ProcessEntry32.szExeFile与用户输入的数据进行比较时,C++ _wcsicmp代码未编译

将ProcessEntry32.szExeFile与用户输入的数据进行比较时,C++ _wcsicmp代码未编译
EN

Stack Overflow用户
提问于 2018-05-03 13:06:22
回答 1查看 187关注 0票数 0

所以,我有这样的代码:

代码语言:javascript
复制
using namespace std;
void targetProcessFinder(wchar_t targetProcess)
{

PROCESSENTRY32 entry;
entry.dwSize = sizeof(PROCESSENTRY32);

HANDLE processSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);

if(Process32First(processSnapshot, &entry) == TRUE)
    {
        while(Process32Next(processSnapshot, &entry) == TRUE)
            {
                if (_wcsicmp(entry.szExeFile, targetProcess) == 0)
                {
                    HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, entry.th32ProcessID);
                    int processID = entry.th32ProcessID;

                    CloseHandle(hProcess);
                }
            }
    }
}

int main()
{
    wchar_t targetProcess
    cin >> targetProcess;
    targetProcessFinder(targetProcess);
}

由于某种原因,我在if(_wcsicmp...)上遇到错误。行,我完全不知道为什么,我已经尝试改变数据类型,看看这是不是问题所在,但似乎没有什么能解决它。

有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2020-04-19 01:45:12

void targetProcessFinder(wchar_t targetProcess)

如果要传递单个wchar_t,则需要传递一个wchar_t*

_wcsicmp(entry.szExeFile, targetProcess)

如果您使用_MBCS编译器标志进行编译,那么PROCESS_ENTRY32.szExeFile是一个常规的字符数组,而不是wchar_t数组,在这种情况下,您需要将项目的字符集转换为Unicode。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50147297

复制
相关文章

相似问题

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