我在DirectX10遊戲引擎上喧鬧,我遇到了與DirectX無關的問題:P問題是,在包含引擎的DLL中,有時會調用DialogBox ,就像你在正常的win32下做的一樣。唯一的區別是,我不使用HINSTANCE,而是使用加載DLL時獲得的HMODULE。從DLL中顯示DialogBox和MessageBox
一切似乎工作正常,如果我通過我的代碼與F10(Visual C++ 2008),我甚至可以看到它通過我的DlgMessageProc函數,並做它應該做的一切。唯一奇怪的是沒有顯示對話框,突然間它跳出消息循環並繼續執行其餘代碼?
Weirly engough我從我的DLL中調用MessageBox的時候有同樣的問題,我沒有得到任何錯誤,似乎一切都工作正常,但沒有顯示窗口,也不是停止代碼(按正常的提示消息框)
有趣的是,我有一本書的代碼,它使用與我一樣的基本架構,如果我編譯的話,一切都顯示得很好?
所以我的問題,是否有任何隱藏的選項,pragama評論或其他事情我應該看看,如果我想能夠顯示MessageBoxes和對話框從我的dll?
不,它不起作用。順便說一句,我確實調用了InitCommonControlls並調整了我的清單,因此我得到了XP/VISTA風格的按鈕,這會影響到什麼嗎?另一個mysterie是爲什麼我有與MessageBoxes相同的問題?這些應該完全由Windows處理。我有這樣的感覺,我需要鏈接額外的東西或設置命令行選項,但我絕對不知道。 我會試着看看我是否可以重建我的解決方案,但沒有經過調整的清單,但我認爲它不會做太多。 – 2009-09-05 17:46:40
我重新啓動了系統並運行了解決方案,但沒有發生任何事情。然後我將一個消息框添加到了一個也稱爲靜態庫的庫中,發現問題更加嚴重。我有這個靜態庫必須運行,創建設備和釋放設備,如果我把一個消息框沒有任何反應。如果我把一個消息框放在鏈接到.lib的exe文件的主體中,那麼就有一個正常的消息框。所以我的系統沒有問題!!!!!我也沒有在我的調試輸出窗口中發現任何錯誤或警告 – 2009-09-06 09:14:34