2011-02-13 32 views
3

我有一個不使用標準庫的應用程序。相反,它使用存根來調用LoadLibrary/GetProcAddress,然後通過結果函數指針調用函數。進入拖放過程(或任何其他系統調用)

使用上述方法我的應用程序調用ole32.dll中的DoDragDrop。該調用正在返回E_UNEXPECTED,這顯然意味着'catastophic失敗'。

我想問的是有沒有人知道一種方法來發現DoDragDrop調用中發生了什麼?具體而言,我可以發現它正在尋找但找不到的函數或變量嗎? (我猜想它想要訪問某些函數或變量,而這些函數或變量在我調用DoDragDrop時沒有加載,如果我可以明確加載它,則調用將成功。)顯然,我無法進入調用 - 試圖僅僅嘗試在DoDragDrop調用之後,在我的代碼中運行函數和步驟。

:)

(我使用VS2005在XP中。)

+1

我不能說我真的建議它,但如果切換到反彙編窗口,然後單步執行,則可以進入系統調用(至少是用戶模式部分)。但是,除非你習慣使用匯編語言,否則它可能不會對你有很大幫助。 – 2011-02-13 17:39:38

回答

0

當我忘了打電話OleInitialize(防爆)/ CoInitialize的(防爆)的制線會發生這樣的事情我記得有電話。請注意,公寓必須是STA。

相關問題