我試圖調試從Visual Studio 2010中我試圖按照這些指令的C/C++本地DLL項目: http://msdn.microsoft.com/en-us/library/c91k1xcf(v=VS.100).aspx調試Visual Studio 2010的DLL項目
我想使用內置的調試器,並能像步驟執行常規.exe項目一樣執行代碼,檢查結構等。上面的頁面上的說明描述了一個調試類別配置屬性,我沒有看到。
http://img707.imageshack.us/img707/4402/lalasz.png
只需按F5鍵下面的錯誤調試結果:
Unable to start program 'C:\Users.......Test.dll'
我用調試器進行定期的.exe項目很多次,它工作正常,這臺計算機上。但我不確定是否現在只是錯過了一些非常明顯的東西。
編輯:由於我從一開始就沒有說清楚,我希望Visual Studio能夠將我的DLL加載到一個存根過程中,並讓我在源代碼級別進行調試,就像OllyDbg的做法一樣。
我的DLL不是包含一堆要導出和調用的函數的類型。相反,它在DllMain中執行一個開關/情況,並在DLL_PROCESS_ATTACH上產生一個新線程。因此,我需要Visual Studio做的是將我的DLL加載到存根可執行文件中,並允許我設置斷點等。
感謝漢斯。調試選項卡在那裏,當我右鍵單擊正確的地方,但我意識到我誤解了頁面。我其實不想指定一個可執行文件。理想情況下,VC++會將我的DLL加載到存根可執行文件上,並讓我以這種方式進行分步操作。就像OllyDbg讓你這樣做。你知道這是可能的嗎? – Mike 2010-09-07 19:42:20
不,VS需要一個.exe,任何.exe,加載DLL並調用您要測試的入口點。除了ActiveX測試容器之外,沒有通用的.exe可以找出你導出的函數需要什麼參數。單元測試總是一個不錯的選擇。 – 2010-09-07 19:59:37
我的DLL不是包含要導出和調用函數的類型。入口點將在dwReason上切換/ case,並且在DLL_PROCESS_ATTACH上會用CreateThread()產生一個線程,這將會做一些工作。同一個DLL能夠在OllyDbg中使用「generic .exe」進行調試,該DLL只需使用一個在DLL上調用LoadLibrary的stub exe文件。我可以輕鬆創建自己的框架可執行文件,它可以完成同樣的功能,但是我無法通過IDE對其進行調試。 – Mike 2010-09-07 20:03:38