C 中使用VC ActiveX控制項

2021-08-11 08:11:46 字數 1316 閱讀 7562

環境:vs2010,winform:

以vc下的dsoframer.ocx為例

1. 首先用aximp.exe將activex 控制項的 com 型別庫中的型別定義轉換為 windows 窗體控制項,這樣才能在winform中使用。

aximp.exe路徑:\program files\microsoft sdks\windows\v7.0a\bin\

aximp.exe能夠把乙個vc dll轉換成兩個.net dll,在c#專案中引用ax開頭那個。

注意:.net dll應具有強名稱,所以要準備兩個金鑰檔案,供aximp.exe給生成的dll簽名用。

簽名工具:sn.exe

sn.exe路徑:\program files\microsoft sdks\windows\v7.0a\bin

cmd中執行:sn -k d:\key1.snk

sn -k d:\key2.snk

aximp d:\dsoframer.ocx /keyfile:d:\key1.snk  d:\key2.snk

生成了dsoframer.dll 和axdsoframer.dll,c#專案中新增對axdsoframer.dll的引用。(兩個dll檔案都需要,要放在一起)

2.註冊dll

三個dll:dsoframer.ocx 、dsoframer.dll 和axdsoframer.dll都需要註冊。

dsoframer.ocx 用regsvr32.exe註冊,dsoframer.dll 和axdsoframer.dll用.net 下的regasm.exe進行註冊,並用gacutil.exe將其新增進全域性程式集緩衝。

gacutil.exe位置:\program files\microsoft sdks\windows\v7.0a\bin\netfx 4.0 tools\

regasm.exe位置:\windows\microsoft.net\framework\v2.0.50727\

注意:

1.註冊用的gacutil和regasm的版本要和你專案的執行庫版本一致。比如你設定了專案的執行庫為.net 2,那麼你就要找主版本號為2的gacutil和regasm。

2.在64位windows上,你要把三個dll全放進syswow64,並使用這個資料夾裡的cmd.exe進行註冊。

註冊**

regsvr32 /s \dsoframer.ocx

gacutil /i dsoframer.dll 

regasm dsoframer.dll

gacutil /i axdsoframer.dll 

regasm axdsoframer.dll

C 中使用visio控制項

2012 08 25 18 14 19 分類 技術相關 舉報 字型大小訂閱 然後就建立乙個c 專案。在工具箱上點右鍵,選擇 選擇項 在開啟的對話方塊中選擇 com控制項 在其中找到visio 12.0 drawing control。然後該控制就被新增到工具箱。還需要引用型別庫否?貌似是不需要。在c...

C 中使用NPOI控制項匯出EXCEL

npoi是指構建在poi 3.x版本之上的乙個程式,npoi可以在沒有安裝office的情況下對word或excel文件進行讀寫操作。將dataset匯出excel public static void getexcelbydataset dataset ds,string file 資料 for ...

duilib中使用MFC控制項

這裡示例將mfc按鈕放到duilib滑塊條控制項的位置 1 準備好乙個duilib控制項來容納mfc控制項,如下 將帶控制代碼hwnd的控制項顯示到ccontrolui上面 class cwndui public ccontrolui virtual void setinternvisible bo...