我有一个C#WPF项目,它使用(非图形)Active X控制器,它包含在Aximp.exe 从OCX文件生成的Windows窗体控件中(我无权访问它的源代码)码)。
使用以下代码实例化其中一个控制器时:
// Create the interop host controls.
var hostProq = new WindowsFormsHost();
_AxProq = new AxProOCX.AxProq();
hostProq.Child = _AxProq;
_AxProq.CreateControl();
调用System.OverflowException
时会抛出CreateControl()
。调用堆栈如下所示:
System.Windows.Forms.AxHost.CreateWithLicense(string license, System.Guid clsid)
System.Windows.Forms.AxHost.CreateInstanceCore(System.Guid clsid)
System.Windows.Forms.AxHost.CreateInstance()
System.Windows.Forms.AxHost.GetOcxCreate()
System.Windows.Forms.AxHost.TransitionUpTo(int state = 2)
System.Windows.Forms.AxHost.CreateHandle()
System.Windows.Forms.Control.CreateControl(bool fIgnoreVisible = false)
System.Windows.Forms.Control.CreateControl()
OCX文件似乎已正确安装和注册,因为其中的某些其他控件正常工作,并且此特定控件可用于ActiveX Control Test Container。该控件的早期版本可以使用,这在几周前就可以使用了。
环境是使用Visual Studio 2015的Windows 10 Pro。
我不确定如何排除例外。
是否由包装器或ActiveX控制器内部引起异常?
什么可以导致控件在ActiveX控件测试容器中工作,但不能在我的应用程序中工作?