如何在Qt 4.8.4应用程序中使用混合模式.net程序集?
在我的Qt应用程序中,我使用COM包装的.net程序集,COM使用Microsoft.DirectX库。 当我启动应用程序时,它会崩溃,输出中有以下详细信息如何在Qt 4.8.4应用程序中使用混合模式.net程序集?,.net,qt,directx,qsettings,.net,Qt,Directx,Qsettings,在我的Qt应用程序中,我使用COM包装的.net程序集,COM使用Microsoft.DirectX库。 当我启动应用程序时,它会崩溃,输出中有以下详细信息 <mda:msg xmlns:mda="http://schemas.microsoft.com/CLR/2004/10/mda"> <!-- DLL 'D:\MyAppPath\..\Microsoft.DirectX.dll' is attempting managed executi
<mda:msg xmlns:mda="http://schemas.microsoft.com/CLR/2004/10/mda">
<!--
DLL 'D:\MyAppPath\..\Microsoft.DirectX.dll' is
attempting managed execution inside OS Loader lock. Do not attempt to run
managed code inside a DllMain or image initialization function since doing so
can cause the application to hang.
-->
<mda:loaderLockMsg break="true"/>
</mda:msg>
myApp.exe has triggered a breakpoint
myApp.exe已触发断点
据我所知,Microsoft.DirectX library for.Net是1.1版本,程序集是4.0,这是问题的根源
我尝试在简单的C++ WiFrm应用程序中使用这个程序集,通过添加App.CONFIG文件来解决同样的问题,代码如下:
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
但Qt似乎不支持app.config文件。如何在Qt配置中设置此useLegacyV2RuntimeActivationPolicy?我试着通过QSettings,但没有成功。或者Qt是否还有其他解决方法
我还尝试禁用LoaderLock异常(调试->异常->托管调试助手)。但它也没有成功
感谢旧版DirectX管理的1.1程序集不支持.NET 4.0。有关详细信息,请参阅本文。你可以考虑使用或其他替代方法。。。