[英]DeleteFile (kernel32.dll) vs DeleteItem (shell32.dll)
[英]VS2008 debugger and kernel32.dll
我一直在調試一個進程(在C ++ / Windows中),該進程使用kernel32.dll中的“ GetThreadContext”。
我注意到我可以得到它的地址
unsigned long address = (unsigned long)(&GetThreadContext);
但是當我查看已加載的模塊選項卡時-我看到kernel32.dll的符號未加載!
VS2008如何知道“ GetThreadContext”的地址?
而我又如何在沒有PDB的情況下自己做呢?
謝謝 :)
這樣做的原因相同
GetThreadContext(hThread, lpContext);
作品。 您的代碼中使用的命名函數必須在鏈接時解析,否則鏈接將失敗。 您是否使用&
取得他們的地址或打電話給他們都沒有關系。 在運行時,將加載DLL,然后函數名將解析為進程中的特定地址。
PDB文件僅用於在調試過程中提供增強的符號信息。 通常,它們在運行時不使用。
[我不禁以為我在這個問題上漏了一些東西。 告訴我這是否不是您的問題。]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.