Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Qt 4.8.4应用程序中使用混合模式.net程序集?_.net_Qt_Directx_Qsettings - Fatal编程技术网

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

如何在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

在我的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 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。有关详细信息,请参阅本文。你可以考虑使用或其他替代方法。。。