VC6下非託管程式呼叫C 編寫的動態庫

2021-06-21 23:04:38 字數 883 閱讀 5648

首先要把c#編寫的動態庫編譯成com介面,具體辦法請參考:

vc6下呼叫步驟如下:

1.新建乙個mfc工程.

2.[view]->[classwizard]->[automation],選擇[from a type library]

3.選擇c#生成的tlb檔案

4.選擇你需要的類

5.確認後,你的工程裡將多出乙個cpp和乙個h檔案,這就是c#中傳出的類的定義.接下來就可以使用了.

6.在你自己的cpp檔案中include新生成的h檔案.

7.然後這樣來使用:

coinitialize(null);	

idataapi myinte***ce;

if(myinte***ce.createdispatch("huaguang.yxissue.idataapi"))

couninitialize();

要注意3點:

1.要用visual studio命令列工具註冊一下c#生成的dll.

regsvcs /fc f:\mylab\testcomdllvc6\debug\*****dataapi.dll
2.要coinitialize(null);初始化.

3.idataapi是匯出的類名.

C 關於託管程式和非託管程式的區別

一般的乙個可執行檔案的內容都包含乙個pe頭,系統根據pe的資訊找到入口函式,通過執行入口函式中的 來執行可執行程式。託管程式的檔案相對於非託管程式還包含了乙個clr表頭檔案以及其他clr需要的資訊。1.非託管程式的執行過程 在非託管程式中,可執行裡面儲存的是機器 cpu可以直接載入並執行,當系統載入...

C 程式實現動態呼叫非託管的DLL檔案

最近的乙個專案需要用c 呼叫c 的dll,由於c 的dll是非託管的,所以呼叫時需要一些技巧。下面分享給新手。一.dll檔案 動態鏈結庫 也稱為 dll,即為 dynamic link library 的縮寫 是 microsoft windows 最重要的組成要素之一,開啟 windows 系統資...

C 呼叫C C 建立的非託管動態庫

c 可以呼叫由c c 語言建立的非託管動態鏈結庫,這需要用到 dllimport dll 根據msdn上的解釋,dllimport註解 attribute 用於指定乙個非託管的動態鏈結庫的匯出函式為靜態入口點。下面引用乙個官方的例子來說明該註解的用法 using system using syste...