我想重用一个使用dotNet2.0开发的自定义WindowsForms控件,并在当前解决方案(WPF,dotNet4.0)中使用一些Microsofts DirectX和Direct3D库(DX9.0c)
我尝试通过System.Windows.Forms.Integration.WindowsFormsHost集成它。
private void Window_Loaded(object sender, RoutedEventArgs e)
{
// Create the interop host control.
System.Windows.Forms.Integration.WindowsFormsHost host =
new System.Windows.Forms.Integration.WindowsFormsHost();
// Create the Signal control.
Control_Signal myCS = new Control_Signal();
// Assign the Signal control as the host control's child.
host.Child = myCS;
// Add the interop host control to the Grid
// control's collection of child controls.
this.myGrid.Children.Add(host);
}
此外,我必须摆脱“混合模式程序集是针对运行时的版本'v1.2.xxx'构建的,如果没有其他配置信息,则无法在4.0运行时加载。”在我的app.config文件中将 useLegacyV2RuntimeActivationPolicy 设置为TRUE会出错。
现在,当我在WPF应用程序中加载WindowsForms控件时,VisualStudio输出注释“类型异常”Microsoft.DirectX.Direct3D.DriverInternalErrorException“出现在Microsoft.DirectX.Direct3D.dll
并且GUI显示代替控件错误“无法初始化MS DirectX!” 相同的控件在本机WindowsForms项目中完美运行。 (我在两个应用程序中引用相同的DirectX库)
现在我不知道从哪里开始调试此错误,(Direct3D.dll中的异常) 也许它的访问权限或权限问题与WinForms.Integration有关?
如果您需要查看控件:
http://pastebin.com/dk00vN5u
由于