win32 C ++中的字符串比较

时间:2015-11-25 20:18:32

标签: c++ string winapi

我想编写一个简单的程序,如果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)”部分中的comparsion。

1 个答案:

答案 0 :(得分:-2)

我解决了。我在Visual Studio中转到项目的属性部分,并将Charachter Set的参数更改为多字节charachter集,现在一切正常。