尝试使用GetProcessImageFileName时,GCC(MinGW)链接器失败

时间:2014-11-06 08:15:32

标签: c++ c winapi gcc mingw

我正在尝试使用“GetProcessImageFileName”检索远程进程的名称。但是,GCC(MinGW)链接器失败并出现以下错误:

<source_file>.c: In function '<function_name>':
 warning: implicit declaration of function 'GetProcessImageFileName' [-Wimplicit-function-declaration]
 GetProcessImageFileName(hProcess, szProcessName, MAX_PATH);
 ^
undefined reference to `GetProcessImageFileName'
collect2.exe: error: ld returned 1 exit status

我尝试使用“-lPsapi”和“-lKernel32”进行编译,但得到了相同的结果。 “GetProcessImageFileName”在“Psapi.h”中声明。

我正在使用Windows 7 Professional 64位和GCC 4.8.1的计算机。有什么想法正在发生什么?

1 个答案:

答案 0 :(得分:2)

确保将宏_WIN32_WINNT定义为larger or equal 0x0501(Windows XP,最低系统支持GetProcessImageFileName)。使用开关-D_WIN32_WINNT=0x0501或包含标题之前:

#define _WIN32_WINNT 0x0501
#include <Windows.h>
#include <Psapi.h>