C 如何呼叫OCX

2021-06-17 16:29:18 字數 1453 閱讀 4032

用ocx控制項的步驟:

1、在系統中註冊該ocx控制項,命令:regsvr32.exe 控制項位置(加 /u 引數是取消註冊)

2、在.net的工具箱中新增該控制項,拖到form中去就可以了。

不用工具箱的話,自己手工新增,需要注意乙個問題,就是要用aximp.exe來包裝一下ocx控制項的類,然後再程式中引用生成的dll就可以了。

aximp

[options]

the following command generates mediaplayer.dll and axmediaplayer.dll for the media player control msdxm.ocx.

aximp c:\systemroot\system32\msdxm.ocx

activex 控制項匯入程式將 activex 控制項的 com 型別庫中的型別定義轉換為 windows 窗體控制項。

windows 窗體只能承載 windows 窗體控制項,即從 control 派生的類。aximp.exe 生成可承載於 windows 窗體上的 activex 控制項的包裝類。這使您得以使用可應用於其他 windows 窗體控制項的同一設計時支援和程式設計方**。若要承載 activex 控制項,必須生成從 axhost 派生的包裝控制項。此包裝控制項包含基礎 activex 控制項的乙個例項。它知道如何與 activex 控制項通訊,但它顯示為 windows 窗體控制項。這個生成的控制項承載 activex 控制項並將其屬性、方法和事件公開為生成控制項的屬性、方法和事件。

如果不包裝一下直接用,會出現 災難性 錯誤。上面已經說明了原因。

在專案中引用生成的ax開頭的dll,在窗體**中增加:

宣告乙個公有的控制項物件:

public axispicreclib.axispicrec axispicrec;

在initializecomponent()方法內初始化控制項:

axispicrec = new axispicreclib.axispicrec();//必須new物件,否則窗體設計器出問題

((system.componentmodel.isupportinitialize)(this.axispicrec)).begininit();//初始化開始

this.controls.add(this.axispicrec);//新增控制項

((system.componentmodel.isupportinitialize)(this.axispicrec)).endinit();

this.axispicrec.ocxstate = ((system.windows.forms.axhost.state)(resources.getobject("axispicrec.ocxstate")));//設計控制項狀態

如果遇到「正試圖在 os 引導程式鎖內執行託管**」這個錯誤,請設定「除錯」--「異常」

"----"managed debugging assistants"中勾掉"loaderlock" 就可以了。

js如何呼叫ocx控制項

最近做硬體相關的專案,廠商提供的ocx控制項,需要在js中通過ocx控制項呼叫c寫的 在此做個筆記 1.對於64位機器,將廠商提供的.dll檔案拷貝到 c windows system32 目錄下,將.ocx檔案拷貝到c windows syswow64 目錄下。2.註冊 ocx檔案。管理員身份。在...

java呼叫ocx方法

一 註冊.ocx控制項,在命令視窗執行 regsvr32.exe ocx,二 取得控制項的classid,開始 執行 輸 regedit,開啟登錄檔 在登錄檔的工具欄的編輯中找到搜尋按鈕,輸入 ocx的名字 查詢,就可以得到控制項的classid,即工程1.usercontrol1 三 ole呼叫的...

QT 呼叫OCX控制項

近期做乙個專案,需要呼叫foxit的pdf ocx控制項,現記錄一下過程。首先,被呼叫的ocx控制項必須被註冊,註冊過程請參考 接著進行如下步驟 一,獲取ocx 的uuid 1 找到oleview.exe,以管理員身份開啟。oleview.exe一般路徑c program files x86 win...