如何在Qt 4.8.4应用程序中使用混合模式.net程序集?

时间:2013-06-24 10:01:37

标签: .net qt directx qsettings

在我的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)。但它也没有成功。

由于

0 个答案:

没有答案