`DebugActiveProcessStop'未申报(首先使用此功能)

时间:2017-05-28 04:26:49

标签: c++ debugging winapi

问题与this一样,但解决方案并不适用于我。

根据DebugActiveProcessStop功能文档,支持的最低客户端是Windows XP。我使用的是Windows 7.

// #ifdef _WIN32_WINNT
// #undef _WIN32_WINNT
// #endif

#define NTDDI_VERSION 0x05010000
// #define _WIN32_WINNT 0x0502

#include <iostream>
#include <windows.h>

using namespace std;

class CppDBG
{
    ...
    public:
        BOOL detach (void);
        ...
};

...

BOOL CppDBG :: detach (void)
{
    if (DebugActiveProcessStop(pid)) {
        cout << "[+] Finished debugging. Exiting...";
        return true;
    }
    else {
        cout << "[-] Error" << endl;
        return false;
    }
}

int main()
{
    CppDBG dbg;
    ...
    dbg.detach();
    return 0;
}

1 个答案:

答案 0 :(得分:0)

我猜你的IDE安装了旧版本的Windows API。

您得到的错误是编译器错误,告诉您编译器不知道DebugActiveProcessStop是什么。对于编译器,这可以是任何东西(例如变量,常量,......)。此错误与您的系统运行的Windows版本无关。

要解决此问题,请尝试从Microsoft下载Windows SDK并告诉编译器使用它(更改包含目录,库路径,...)。这在很大程度上取决于您使用的IDE。但互联网应该提供足够的帮助。