c#調(diào)用vc寫的ocx控件示例
在c#中怎樣調(diào)用VC寫的OCX控件,主要有兩個(gè)關(guān)鍵環(huán)節(jié)
兩個(gè)關(guān)鍵環(huán)節(jié):導(dǎo)入ocx控件,創(chuàng)建實(shí)例。
1 注冊ocx:
regsvr32.exe alasunsmscon.ocx
2 在CMD窗口中執(zhí)行:
AxImp.exe alasunsmscon.ocx
生成兩個(gè)文件:alasun.dll,Axalasun.dll
3 在項(xiàng)目中引用Axalasun.dll
4 調(diào)用
Axalasun.Axalasunsms sms = new Axalasun.Axalasunsms();
sms.CreateControl();
就可以使用了
這里還有一個(gè)c#控制臺模式下調(diào)用vc開發(fā)的ocx組件的示例
1、注冊組件 regsvr32 C:\WINDOWS\system32\HX.ocx
2、用Aximp.exe工具對HX.ocx做轉(zhuǎn)換,對APT.ocx再次封裝成兩個(gè)類庫(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
{
//設(shè)置靜態(tài)變量
static AXHH hh;
[STAThread]
static void Main(string[] args)
{
//初始化ocx控件
hh = new AXHH();
//顯式調(diào)用該實(shí)例的CreateControl()方法才能調(diào)用其他方法否則在調(diào)用時(shí)系統(tǒng)將報(bào)AxHost.InvalidActiveXStateException異常
hh.CreateControl();
//調(diào)用控件屬性及方法
hh.ip="127.0.0.1";
hh.test();
}
}
4、注意,如果是多線程調(diào)用,則在 線程名.Start() 前加上,例如:
線程名.SetApartmentState(System.Threading.ApartmentState.STA);//設(shè)置模式,必須在啟動之前設(shè)置。
// 啟動線程將調(diào)用 ThreadStart 委托。
線程名.Start();
相關(guān)文章
C#使用FileStream循環(huán)讀取大文件數(shù)據(jù)的方法示例
這篇文章主要介紹了C#使用FileStream循環(huán)讀取大文件數(shù)據(jù)的方法,結(jié)合實(shí)例形式分析了FileStream文件流的形式循環(huán)讀取大文件的相關(guān)操作技巧,需要的朋友可以參考下2017-05-05C#正則表達(dá)式分解和轉(zhuǎn)換IP地址實(shí)例(C#正則表達(dá)式大全 c#正則表達(dá)式語法)
這是我發(fā)了不少時(shí)間整理的C#的正則表達(dá)式,新手朋友注意一定要手冊一下哦,這樣可以節(jié)省很多寫代碼的時(shí)間。下面進(jìn)行了簡單總結(jié)2013-12-12C# WinForm實(shí)現(xiàn)自動更新程序的方法詳解
這一篇就著重寫一下客戶端的代碼,客戶端主要實(shí)現(xiàn)的有:啟動后檢測本地的xml文件,然后發(fā)送到服務(wù)器獲取需要更新的文件以及版本列表,感興趣的小伙伴可以了解一下2022-10-10