在我的Qt应用程序中,我使用包装在COM中的.net程序集,它使用Microsoft.DirectX库。 当我启动我的应用程序时,它会在输出
中崩溃并显示以下详细信息<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
据我所知,.Net的Microsoft.DirectX库是1.1版本,程序集是4.0,这是问题的根源。
我尝试在简单的c ++ winForms应用程序中使用此程序集,并通过添加带有以下代码的app.config文件解决了同样的问题
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
但是Qt似乎不支持app.config文件。如何在Qt配置中设置此 useLegacyV2RuntimeActivationPolicy ?我试过QSettings并没有成功。或者Qt还有其他一些解决方法吗?
我还试图禁用LoaderLock Exception(Debug-&gt; Exceptions-&gt; Managed Debugging Assistants)。但它也没有成功。
由于