Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/151.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++_将ProcessEntry32.szexE文件与用户输入的数据进行比较时,wcsicmp代码未编译_C++_Process - Fatal编程技术网

C++ C++_将ProcessEntry32.szexE文件与用户输入的数据进行比较时,wcsicmp代码未编译

C++ C++_将ProcessEntry32.szexE文件与用户输入的数据进行比较时,wcsicmp代码未编译,c++,process,C++,Process,因此,我有以下代码: using namespace std; void targetProcessFinder(wchar_t targetProcess) { PROCESSENTRY32 entry; entry.dwSize = sizeof(PROCESSENTRY32); HANDLE processSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL); if(Process32First(processSn

因此,我有以下代码:

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…)行上遇到了一个错误,我完全不知道为什么,我已经尝试更改周围的数据类型,看看这是否是问题所在,但似乎没有任何方法可以解决它


有什么建议吗?

void targetProcessFinder(wchar\t targetProcess)

你要通过一个wchar\t,你需要通过一个wchar\t*

\u wcsicmp(entry.szExeFile,targetProcess)


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

targetProcess
是一个
wchar\u t
,它不是指向
wchar\u t
序列的指针。所以,是的,编译器抱怨是对的。如果您了解(a)正在调用的函数及其要求,(b)
cin>>targetProcess
只保存了一个字符,这将非常有帮助。欢迎使用堆栈溢出!你能详细说明你收到的错误吗?请详细了解这些细节,以便我们能更好地帮助您。