[請益] Windows OPENGL 多視窗顯示問題(跪求)

看板C_and_CPP (C/C++)作者 (你想要什麼)時間12年前 (2013/07/30 20:49), 編輯推噓1(107)
留言8則, 3人參與, 最新討論串1/1
預開發: 在兩個"使用者控制項"(可以想成就是兩個form) 同時顯示來自同一個檔案的3D圖檔 而且user可以不斷自由選擇想開哪一個圖檔出來看 開發環境: VB6 遇到的問題: 我的圖檔"畫到"控制項上面顯示出來 是透過另外一個寫好包好的DLL去做 可是目前怎麼修改 都只能做到只有一個form能顯示 (如果A有跑出圖 B就不見 反之也是如此) 有跑出以下的錯誤訊息(是DLL內寫的 但原PO非DLL作者 因此上來請益) DLL內的 KillGLWindow(hRC As HGLRC): if(!wglMakeCurrent(NULL, NULL))("Release of DC And RC Failed") if(!wglDeleteContext(hRC))("Release Rendering Context Failed") 以及 CreateGLWindow(HWND hWnd_in): if(wglMakeCurrent(hDC,hRC)){ KillGLWindow() MessageBox("Can't Activate The GL Rendering Context") return FALSE } 以上紅色字體部分即為原PO在執行原PO所開發程式時出現的訊息 **只在使用者更換想看的圖檔時候出現 **以上三句錯誤訊息都是一起連著跳出來 **按下確定或紅色X鍵關閉後程式仍可正常執行 只是連本來至少一個form可以顯示都沒有了 兩個form都跑不出圖 原PO自己的想法: 已經GOOGLE過相關問題,原PO知道這是call完DLL後, 資源沒釋放還給Windows所產生的問題(或者說釋放過程出了問題 有bug) 原PO是想知道到底是什麼原因出了錯?? 網路上都只是把那些wgl function白話敘述一遍 沒有看到到底真正底層讓那些fuction可能出錯的原因"們"是哪些 因此厚著臉皮上來跪求各位鄉民指教 謝謝!!! ****因為某些原因,所以code無法放到網路上(此並非學生作業),請各位高手見諒 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.126.143.159 ※ 編輯: theone777 來自: 59.126.143.159 (07/30 20:50)

07/30 21:01, , 1F
用GetLastError()和 FormatMessage()看詳細錯誤
07/30 21:01, 1F

07/31 09:31, , 2F
wglMakeCurrent(hDC,hRC) 成功回傳 true
07/31 09:31, 2F

07/31 23:54, , 3F
總覺得是DC和RC分配上的問題@@
07/31 23:54, 3F

08/01 10:41, , 4F
我是覺得不用懷疑wgl函數@@倒是應用上的問題才要注意
08/01 10:41, 4F

08/01 10:48, , 5F
另外這邊PO的是DLL裡面的程式碼嗎?感覺不太像@@
08/01 10:48, 5F

08/01 11:30, , 6F
你不覺得成功wglMakeCurrent卻吐失敗訊息並殺掉視窗很怪嗎
08/01 11:30, 6F

08/01 12:40, , 7F
樓上+1,KillGLWindow那邊也沒有傳引數@@
08/01 12:40, 7F

08/01 12:43, , 8F
(我的"不用懷疑wgl函數"是指內部不太容易發生錯誤XD)
08/01 12:43, 8F
文章代碼(AID): #1HzxPFeV (C_and_CPP)
文章代碼(AID): #1HzxPFeV (C_and_CPP)