C 中對ActiveX控制項的呼叫

2021-04-16 02:50:52 字數 1342 閱讀 5498

一、不生成具有強名稱的程式集

1.使用下面這兩個命令將com控制項轉換成.net程式集

aximp c:/windows/system/shdocvw.dll

tlbimp mshtml.tlb

aximp將產生兩個檔案:axshdocvw.dll and shdocvw.dll.

tlbimp將產生mshtml.dll,它包含了3000多個 dhtml dom的介面,所以轉換可能需要一些時間.

2. 上面產生的dll檔案直接可由.net應用程式呼叫了。

二、生成具有強名稱的程式集

1.用sn 命令生成三個snk檔案,分別是後面將要生成的程式集的金鑰檔案

sn –k axshdoc.snk

sn –k shdocvw.snk

sn –k mshtml.snk

2.使用上面aximp 和 tlbimp 生成這三個程式集檔案,這些命令加上/keyfile:可選項

aximp c:/windows/system/shdocvw.dll /keyfile:axshdoc.snk shdocvw.snk

tlbimp mshtml.tlb /keyfile:mshtml.snk

這樣就可以生成具有強名稱的程式集了。

3.把它們加到程式集快取中,分別呼叫

gacutil axshdocvw.dll

gacutil shdocvw.dll

gacutil mshtml.dll

開啟全域性程式集快取,就可以看到這三個程式集已經在列表中了。

在c:/winnt/assembly也可以看到了。

using system;

using system.drawing;

using system.collections;

using system.componentmodel;

using system.windows.forms;

using system.data;

using mediaplayer;

namespace advanceplayer

/**

/// 清理所有正在使用的資源。

///

protected override void dispose( bool disposing ) }

base.dispose( disposing );

} windows 窗體設計器生成的**#region windows 窗體設計器生成的**

/**

/// 設計器支援所需的方法 - 不要使用**編輯器修改

/// 此方法的內容。

///

C 呼叫ActiveX控制項

背景 最近專案中需要用到activex控制項,專案是在.net平台下開發的。因此就直接在專案中新增了對activex控制項的引用,新增引用成功。在 中例項化類的例項也沒有問題,但在呼叫其方法或屬性時總是丟擲 未處理 comexception 異常。方法一 1 在系統中註冊該ocx控制項,命令 reg...

c 實現的ActiveX控制項

雖然應用範圍有限,但也算是一種嘗試吧。using system.runtime.interopservices namespace actwsz classinte ce classinte cetype.autodual public class acttest iact public strin...

C 整合ActiveX控制項

問題描述 最近專案中需要用到activex控制項,專案是在.net平台下開發的。因此就直接在專案中新增了對activex控制項的引用,新增引用成功。在 中例項化類的例項也沒有問題,但在呼叫其方法或屬性時總是丟擲 未處理 comexception 異常。解決方法,按照以下步驟 1.註冊activex控...