c#调用vc写的ocx控件示例
发布时间:2021-09-26 19:34:00
标签:c#,ocx控件
在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();


猜你喜欢
- 前言Spring Data Jpa框架的目标是显著减少实现各种持久性存储的数据访问层所需的样板代码量。Spring Data Jpa存储库抽
- 本文实例讲述了C#实现读写ini文件类。分享给大家供大家参考。具体如下:这个C#类封装了对INI配置文件进行操作所需的各种函数,包括读取键值
- 要讲到C#源码的执行过程 首先要提下程序集,因为Clr并不是和托管摸块打交道的,而是和程序集(dll,exe)1、从哪里来程序集是由一个或者
- 1、synchronized 方法与锁对象线程锁的是对象。1)A线程先持有 object 对象的 Lock 锁, B线程可以以异步的方式调用
- 在Excel中,可对单元格中的字符串设置多种不同样式,通常只需要获取到单元格直接设置样式即可,该方法设置的样式会应用于该单元格中的所有字符。
- 前言StringJoiner是Java里1.8新增的类,主要是帮助我们把一个列表拼接字符串, 或许有一部分人没有接触过. 所以本文将从使用例
- 在文件夹中,我们经常有类似s_1.txt、s_2.txt、s_10.txt、s_11.txt这样的命名方式,我们期望的排序方式是s_1.tx
- 与链表、堆栈和队列不一样,二叉查找树不是线性数据结构,是二维数据结构。每个节点都包含一个LeftNode和RightNode,二叉查找树把比
- XmlTextReader 提供对 XML 数据流的只进只读访问。当前节点指读取器定位到的节点。使用任何读方法推进读取器并且属性反映当前节点
- C语言是一种高级编程语言,其最重要的特点之一是它允许程序员使用函数来组织代码。函数是一组相关的指令的集合,可以在程序中多次调用。在 C语言中
- 1、volley 项目地址 https://github.com/smanikandan14/Volley-demo (1)&nb
- 前言最近学习netty的时候发现nio包下有个FileChannel类,经过了解这个类作用是个专门负责传输文件的通道,支持多线程,而且经过反
- C语言代码由上到下依次执行,原则上函数定义要出现在函数调用之前,否则就会报错。但在实际开发中,经常会在函数定义之前使用它们,这个时候就需要提
- BigDecimal 和 0 比较大小调用BigDecimal中的compareTo方法, 如:int i = bigDecimal.com
- 本文实例为大家分享了Unity实现透视滑动列表的具体代码,供大家参考,具体内容如下1、目的有时候,为了实现更好的美术效果,需要实现一些特殊的
- 对于很多开发人员来说,炫酷的UI效果是最吸引他们注意力的,很多人也因为这些炫酷的效果而去学习一些比较知名的UI库。而做出炫酷效果的前提是你必
- spring boot是个好东西,可以不用容器直接在main方法中启动,而且无需配置文件,方便快速搭建环境。可是当我们要同时启动2个spri
- SpringBoot使用Commons Logging进行所有内部日志记录,但保留底层日志实现。默认提供了Java Util Logging
- 1.介绍有时候我们在Linux中运行Java程序时,需要调用一些Shell命令和脚本。而Runtime.getRuntime().exec(
- 本文实例讲述了C#操作ftp类。分享给大家供大家参考。具体如下:using System;using System.Collections.