我想弄清楚这几个星期了......每当我用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