Getting compilation error for “tlhelp32.h” in MinGW g++ compiler

不想你离开。 提交于 2019-12-12 06:20:14

问题


I am writing a simple C++ app that checks whether a given exe file example:'a.exe' is running or not(windows OS), I have googled and found some code in the below link.

http://stackoverflow.com/questions/3355379/how-do-i-find-out-if-a-exe-is-running-in-c

The code mentioned above uses a header file "tlhelp32.h". I just copied the code and did some necessary changes then complied it in MinGW , there comes the next problem, all of the datatypes mentioned in that header files are errored out ex: 'DWORD' does not name a type, 'LONG' does not name a type, 'WCHAR' does not name a type,'CHAR' does not name a type

I never faced this kind of issues before where an existed header file is failed to compile (yes it exist I've checked it).

really appreciate any help on this.

code below:

#include <tlhelp32.h>


int main()
{
    PROCESSENTRY32 pe32 = {0};
HANDLE    hSnap;
int       iDone;
int       iTime = 60;
bool      bProcessFound;

while(true)    // go forever
{
    hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
    pe32.dwSize = sizeof(PROCESSENTRY32);
    Process32First(hSnap,&pe32);     // Can throw away, never an actual app

    bProcessFound = false;   //init values
    iDone = 1;

    while(iDone)    // go until out of Processes
    {
        iDone = Process32Next(hSnap,&pe32);
        if (strcmp(pe32.szExeFile,"a.exe") == 0)    // Did we find our process?
        {
            bProcessFound = true;
            iDone = 0;
        }
    }

    if(!bProcessFound)    // if we didn't find it running...
    {
        startProcess("C:\\MinGW\\"+"a.exe","");             // start it
    }
    Sleep(iTime*10);    // delay x amount of seconds.
}
return 0;

}

回答1:


As Richard Critten said adding "Windows.h" before "tlhelp32" resolves the issue and more over a function startprocess() in the above code has never existed so use shellexecute() to make it work

ex: ShellExecute(NULL, "open", "c:\MinGW\a.exe", NULL, NULL, SW_SHOWDEFAULT);



来源:https://stackoverflow.com/questions/31943646/getting-compilation-error-for-tlhelp32-h-in-mingw-g-compiler

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!