我想弄清楚這幾個星期了......每當我用plattform工具集VS2013(vs120)或更低版本編譯我的D3D代理DLL時,我得到一個訪問衝突(0xC0000005)在使用此庫的D3D9應用程序中。 如果我更改爲VS2015或VS2017,則不會發生異常。如果使用低於VS2015的vC++編譯器進行編譯,DLL中的訪問衝突
我的dll只包含DirectX 9接口IDirect3D9和IDirect3DDevice9(作爲原始代理dll)的重新實現。
我想使用VS2013的原因是我的閉源D3D9應用程序已經使用VS2013編譯。如果我正確理解使用不同的VS運行時通常不能正常工作,這可能也是我所有嘗試將所有調用D3D9方法記錄到文件導致運行時錯誤的原因。
順便說一句,我在Windows 8.1 Pro上。
歡迎任何幫助!
*如果我更改爲VS2015或VS2017,則不會發生異常* - 是時候開始調試(或學習如何調試)您的應用程序,並確切瞭解哪些函數,哪條線路等導致異常。訪問衝突可能由多種原因引起,其中之一是由不同編譯器顯示的代碼中的錯誤。 – PaulMcKenzie
顯然我還不夠清楚。 _我想使用VS2013的原因是我的封閉源代碼D3D9應用程序已經使用VS2013編譯._因此,我的意思是我試圖攔截D3D9調用的封閉源代碼應用程序。我沒有提供引發異常的部分的源代碼。 – Apollo13