ocx 调用 当前线程不在单线程单元中,因此无法实例化 ActiveX 控件“bf7e992c-393f-4626-bcf5-bbab7f81b2dd”
类中调用界面ActiveX控件报错当前线程不在单线程单元中因此无法实例化 ActiveX 控件的解决办法
解决办法是Form类中定义一个静态的ActiveX对象,在class中将界面上的ActiveX对象赋值给新定义的对象,类中访问该静态对象即可.
public static Axhnisi_ssdkProj.Axhnisi_ssdk ssdkProj = new Axhnisi_ssdkProj.Axhnisi_ssdk();
public int CallOCXService(string serverName = "")
{
var str = "";
// Axhnisi_ssdkProj.Axhnisi_ssdk ssdkProj = new Axhnisi_ssdkProj.Axhnisi_ssdk();
ssdkProj.CreateControl();
//开始初始化ocx对象
ssdkProj.BeginInit();
str = ssdkProj.GetJkxx();
// 结束初始化
ssdkProj.EndInit();
//将控件添加到host中
outputData = str;
}