在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();
如对本文有疑问,
点击进行留言回复!!
相关文章:
-
-
C#实现猜数字游戏
本文实例为大家分享了c#实现猜数字游戏具体代码,供大家参考,具体内容如下给定一个0-100的随机数字猜其大小题目样式:电脑产生一个0到100之间的随机数字,并且...
[阅读全文]
-
-
C# 可空类型的具体使用
在项目中我们经常会遇到可为空类型,那么到底什么是可为空类型呢?下面我们将从4个方面为大家剖析。1、可空类型基础知识顾名思义,可空类型指的就是某个对象类型可以为空...
[阅读全文]
-
-
-
C#实现猜数字小游戏
本文实例为大家分享了c#实现猜数字小游戏的具体代码,供大家参考,具体内容如下效果如图:代码:using system;using system.collecti...
[阅读全文]
-
-
C#实现简单俄罗斯方块
最近在看《.net游戏编程入门经典 c#篇》 第一章介绍了如何制作俄罗斯方块,自己试了试按照书上的步骤,可算是完成了。于是写下这篇文章留作纪念。1.类的设计在充...
[阅读全文]
-
-
网友评论