win32 C++中的字符串比较

String comparsion in win32 C++

本文关键字:字符串 比较 C++ win32      更新时间:2023-10-16

我想写一个简单的程序,如果SbieCtrl.exe进程在我的机器中运行,我的程序会在输出中报告它。但我的代码不起作用。我把我的代码放在下面:

我的班级代码:

    bool processTools(string processName) {
    HANDLE hProcessSnap;
    PROCESSENTRY32 pe32;
    hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    if (hProcessSnap == INVALID_HANDLE_VALUE) {
        procRunning = false;
    }
    else {
        pe32.dwSize = sizeof(PROCESSENTRY32);
        if (Process32First(hProcessSnap, &pe32)) { 
            if (pe32.szExeFile == processName) {
                procRunning = true;
            }
            else {
                while (Process32Next(hProcessSnap, &pe32)) {
                    compare = pe32.szExeFile;
                    if (compare == processName) {
                        procRunning = true;
                        break;
                    }
                }
            }
            CloseHandle(hProcessSnap);
        }
    }
    return procRunning;
}

我的目标代码:

class Sandboxie : Base {
public:
    int SandboxieProcess() {
        if (processTools("SbieCtrl.exe")) {
            return 1;
        }
        else {
            return 0;
        }
    }
};

为什么此代码不起作用。我在"if(pe32.szExeFile==processName)"部分有几个类似比较的错误。

我解决了这个问题。我在Visual studio中转到项目的属性部分,将Charachter Set的参数更改为多字节字符集,现在一切都很好。