不幸的是,由於某種原因,我無法理解,我一直無法windbg承認我的擴展。不能得到windbg識別我的擴展
#ifndef EXPT_API
#define EXPT_API __declspec(dllexport)
#endif
extern "C" EXPT_API HRESULT CALLBACK help(PDEBUG_CLIENT Client, PCSTR args)
{
IDebugControl* Control;
IDebugSymbols* Symbols;
DebugCreate(__uuidof(IDebugClient),(void **)&Client);
Client->QueryInterface(__uuidof(IDebugControl), (void **)&Control);
Client->QueryInterface(__uuidof(IDebugSymbols), (void **)&Symbols);
// TODO: Extension code goes here:
Control->Output(DEBUG_OUTPUT_NORMAL, "A sample help message.");
return S_OK;
}
這一切編譯罰款,但每當我試圖加載從WinDbg的擴展,我得到這個:
!Extension.help
No export help found
我我的.dll文件加載成IDA Pro的自由,並期待在出口,那裏是:「幫助」。我一直試圖弄清楚這幾個小時。任何幫助你可以提供將非常感激。非常感謝。
你看在所依賴的DLL?即使使用extern「C」,一些調用約定也會輕微地改變名稱。 – Benj
非常感謝!你真了不起!它將我的「幫助」轉換爲「_help @ 8」。你有什麼想法如何解決這個問題? .def文件會訣竅!?謝謝,非常感謝!編輯:如果您將其轉換爲答案,我會接受並註冊它:p – niemiro
是的,.def文件通常是答案。 – Benj