时间:2021-05-20
在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();
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
没有办法,实践证明最好的解决办法是自己写一个OCX控件,这样就只要注册一下OCX控件就可以了,同时OCX控件的可扩展性非常大,也就是给vc\delphi这些程序
C#如何调用一个非托管动态库中的函数呢,比如用VC6写的动态库,总之C#调用动态库的过程是比Java调用DLL动态库方便快捷多了,下面举例说明这个过程。1、创建
关键易语言调用OCX控件功能1、打开易语言,点工具点OCX组件2、这里我以安装一个条形码控件为例,点注册组件,然后选择ocx文件,然后点确定3、确定后,ocx控
本文实例为大家分享了C#操作INI配置文件示例的具体代码,供大家参考,具体内容如下源文件地址:C#操作INI配置文件示例创建如图所示的控件:源代码:usingS
功能需求:在框架中使用ImageButton控件关闭应用程序问询“是否确认退出”,用ImageButton的OnClick事件(C#)中调用JavaScript