当前位置: 移动技术网 > IT编程>开发语言>c# > c#调用vc写的ocx控件示例

c#调用vc写的ocx控件示例

2019年07月18日  | 移动技术网IT编程  | 我要评论

在c#中怎样调用vc写的ocx控件,主要有两个关键环节

两个关键环节:导入ocx控件,创建实例。

1 注册ocx:

复制代码 代码如下:

regsvr32.exe alasunsmscon.ocx

2 在cmd窗口中执行:

复制代码 代码如下:

aximp.exe alasunsmscon.ocx

生成两个文件:alasun.dll,axalasun.dll

3 在项目中引用axalasun.dll

4 调用

复制代码 代码如下:

axalasun.axalasunsms sms = new axalasun.axalasunsms();
sms.createcontrol();

就可以使用了

这里还有一个c#控制台模式下调用vc开发的ocx组件的示例

1、注册组件 regsvr32 c:\windows\system32\hx.ocx

2、用aximp.exe工具对hx.ocx做转换,对apt.ocx再次封装成两个类库(hx.dll,axhx.dll)

3、代码

复制代码 代码如下:

using system;
using system.data;
using system.io;
using system.messaging;
using system.net;
using system.text;
using system.text.regularexpressions;
using system.threading;
using system.web;
using system.data.sqlclient;
using axhh;//ocx控件
using hh;//ocx控件
   using system.windows.forms; 
namespace ocx_test
{
    public class program
    {
        //设置静态变量
        static axhh hh;
        [stathread]
        static void main(string[] args)
        {

            //初始化ocx控件
            hh = new axhh();
            //显式调用该实例的createcontrol()方法才能调用其他方法否则在调用时系统将报axhost.invalidactivexstateexception异常
            hh.createcontrol();

           //调用控件属性及方法
            hh.ip="127.0.0.1";
           hh.test();

           }
}

4、注意,如果是多线程调用,则在  线程名.start() 前加上,例如:

复制代码 代码如下:

线程名.setapartmentstate(system.threading.apartmentstate.sta);//设置模式,必须在启动之前设置。
 // 启动线程将调用 threadstart 委托。
线程名.start();

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网