我尝试使用自动生成的WinForms包装器DLL和WindowsFormsHost
在WPF窗口中嵌入ActiveX控件(Sax Basic IDE)。几个月前,它在另一台计算机上运行。但是现在控件抛出了一个本机异常,“访问冲突执行位置......”
尝试以下操作时,我看到了这个异常:
将控件添加到工具箱(通过“COM组件”选项卡)并将其拖放到Windows窗体用户控件上。 Visual Studio崩溃了。如果我使用另一个Visual Studio实例进行调试,我会得到上述异常。
在代码中实例化控件并将其直接附加到WindowsFormsHost
:
private void Window_Loaded(object sender, RoutedEventArgs e)
{
SaxHost.Child = new AxSb6ent.AxBasicIdeCtl();
}
当我启动此窗口时,应用程序在SaxHost.Child = …
行上遇到上述异常崩溃。
在代码中实例化控件并调用CreateControl()
:
private void Window_Loaded(object sender, RoutedEventArgs e)
{
var ctl = new AxSb6ent.AxBasicIdeCtl();
ctl.CreateControl();
SaxHost.Child = ctl;
}
当我启动此窗口时,应用程序在CreateControl()
行上遇到上述异常崩溃。
如何才能找到这些崩溃的底部并使ActiveX控件发挥得更好?