首先要把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...