質問はthisと同じですが、解決策は私のためには機能しません。`DebugActiveProcessStop 'は宣言されていません(最初にこの関数を使用してください)
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;
}
「私はWindows 7を使用しています」 - そして何ですか?コードをコンパイルするシステムに関係なく絶対的です。あなたが使用する* sdk *バージョンだけが重要です(そして、まったく使用していません)。 * sdk *を使用する場合、 'DebugActiveProcessStop'が宣言されている場所を単純に検索し、それを条件ブロック(*#if *)に入れてこの条件に従います。 – RbMm