[問題] C++/CLI dll中使用OpenFileDialog

看板C_and_CPP (C/C++)作者 (AzureBlaze)時間14年前 (2012/02/13 23:34), 編輯推噓1(105)
留言6則, 2人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC2008/Win32 問題(Question): 我在C++/CLI的dll中寫了一個form,然後在 unmanaged C++中使用他。 一般的操作都沒問題,可是OpenFileDialog::ShowDialog() 會block到對話框關掉為止。但是因為我的message pump和 ShowDialog()在同一個thread上所以整個卡死了 message pump --> ... --> dll --> ... -> ShowDialog() ShowDialog()在等待message pump餵東西給他才能顯示 可是message pump在等待ShowDialog()結束才可以處理下個 訊息。 我試過把OpenFileDialog放到別的thread上,但是debugger 很不高興一直跟我抱怨什麼找不到RPC伺服器。(單獨執行似 乎正常就是了) 請問除了自己寫一個OpenFileDialog之外有沒有什麼比較好 的解決方法? 程式碼(Code):(請善用置底文網頁, 記得排版) http://ppt.cc/0Rp- button1按下去會開OpenFileDialog,然後就掛了 補充說明(Supplement): 主程式側的架構不太方便修改 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.168.79.171

02/14 00:17, , 1F
我給的code可以用ShowDialog(dummyForm)解決
02/14 00:17, 1F

02/14 00:17, , 2F
可是不知道為什麼實際用的地方不行....
02/14 00:17, 2F

02/14 00:46, , 3F
自問自答ShowHelp要設成true
02/14 00:46, 3F

02/14 00:50, , 4F
可是有時候還是會跳RPC或是當掉
02/14 00:50, 4F

02/14 13:26, , 5F
最後只好rundll自己然後IPC傳回
02/14 13:26, 5F

08/10 23:44, , 6F
感謝大大 2016 08 10 踩到這個點 特別來答謝
08/10 23:44, 6F
文章代碼(AID): #1FEIr_Pu (C_and_CPP)
文章代碼(AID): #1FEIr_Pu (C_and_CPP)