在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
调用OCX控件的步骤: 不用工具箱的话,自己手工添加,需要注意一个问题,就是要用Aximp.exe来包装一下ocx控件的类,然后再程序中引用生成的dll就可以了。 ActiveX 控件导入程序将 ActiveX 控件的 COM 类型库中的类型定义转换为 Windows 窗体控件。 如果不包装一下直接用,会出现 灾难性 错误。上面已经说明了原因。 在项目中引用生成的ax开头的dll,在窗体代码中增加: 如果不这样做,会出现引发类型为“System.Windows.Forms.AxHost+InvalidActiveXStateException”的异常。 this.AxISPICREC.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("AxISPICREC.OcxState")));//设计控件状态 如果遇到“正试图在 os 加载程序锁内执行托管代码”这个错误,请设置“调试”--“异常”
//当前MRViewer.ocx是否已经注册过 32位 Microsoft.Win32.RegistryKey rk = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey("CLSID\\{FD44D72B-E01D-435C-8CAB-EF68843C2A12}\\"); int i = -1; if (rk == null) { //>=0注册成功, <0 注册失败 i = DllRegisterServer(); } if (rk != null || i >= 0) { InitializeComponent(); } else { MessageBox.Show("MRViewer组件未注册!"); } |
请发表评论