问题与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;
}
答案 0 :(得分:0)
我猜你的IDE安装了旧版本的Windows API。
您得到的错误是编译器错误,告诉您编译器不知道DebugActiveProcessStop
是什么。对于编译器,这可以是任何东西(例如变量,常量,......)。此错误与您的系统运行的Windows版本无关。
要解决此问题,请尝试从Microsoft下载Windows SDK并告诉编译器使用它(更改包含目录,库路径,...)。这在很大程度上取决于您使用的IDE。但互联网应该提供足够的帮助。