其他分享
首页 > 其他分享> > ocx 调用 当前线程不在单线程单元中,因此无法实例化 ActiveX 控件“bf7e992c-393f-4626-bcf5-bbab7f81b2dd”

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;

}

标签:控件,ssdkProj,ActiveX,ssdk,bf7e992c,Axhnisi,类中
来源: https://www.cnblogs.com/56982173513871739239lex/p/14817483.html