我正在爲我的高級項目編寫一個編程學習遊戲,我正在尋找一種編譯器,它可以編譯一個DLL,然後可以將它動態加載到Visual Studio 2008 C++應用程序中。可重新編譯的編譯器 - 用於MS Visual Studio的DLL
這裏的重要思想是編譯器是可再發行的。如果VS是可再發行的,我會使用它。
到目前爲止,我已經使用MinGW取得了一些成功,但成功是有限的。目前,我只能夠一次加載和運行一個DLL。當我嘗試加載第二個VS C++應用程序崩潰時出現Access Violation錯誤。
我已經能夠加載在VS本身沒有問題編譯的兩個DLL,所以它使我相信它是特定於MinGW的東西,它的DLL,以及它們如何與LoadLibrary()以及它們進行交互。
我一直在這個問題上工作了很長一段時間,我很害怕。如果有人知道你知道會使用不同的編譯器,而不是MinGW,或者如果你看到這個問題,你可能知道爲什麼第二個DLL會崩潰。我確定它與每個DLL都以某種方式相互關聯,但我不知道這會是什麼或如何發現。
這可能是我編譯DLL的方式或我如何加載它;我不知道。
我真的很感謝意見, 謝謝!
編輯: 這些都是簡單的調用g ++以及dlltool用於創建DLL http://pastebin.com/f675df4b0
這是從我的dll的一個來源。 http://pastebin.com/f5c062611
這是我的C++應用程序中加載DLL的代碼。 http://pastebin.com/f52f94a18
-Michael
你可以嘗試提供一些關於崩潰的更多信息。它在哪裏崩潰。在LoadLibrary調用中,還是在調用您導入的任何特定函數時? – Laserallan 2010-02-17 23:03:45
這是一個通用的「訪問衝突」崩潰。正確的LoadLibrary()。但總是在加載第二個DLL。它在第一次LoadLibrary()調用時從不崩潰。 如果我今晚可以在DLL函數中粘貼dll源代碼,dll編譯命令和代碼。 – 2010-02-18 00:28:57