c#调用vc写的ocx控件示例
程序员文章站
2023-12-19 13:49:22
在c#中怎样调用vc写的ocx控件,主要有两个关键环节
两个关键环节:导入ocx控件,创建实例。1 注册ocx:复制代码 代码如下:regsvr32.exe alasun...
在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();
推荐阅读