C 下新增C 動態庫

2021-06-06 08:37:45 字數 2112 閱讀 7471

這個網上很多。但是沒有能執行起來的。自己經過一周多的摸索進行稍微總結下。首先是

c++下的宣告:

標頭檔案:extern"c"_declspec(dllexport)intadd(intsm);cpp檔案:

intadd(intsm)

標頭檔案:extern"c"_declspec(dllexport)intadd(intsm);

cpp檔案:

intadd(intsm)

生成dll把所生成的拷到c#的bin/debug下

在c#下呼叫:

[dllimport("mediastream.dll", entrypoint ="add", charset =charset.auto, callingconvention =callingconvention.cdecl)]

publicstaticexternintadd(intsm);

[dllimport("mediastream.dll", entrypoint ="add", charset =charset.auto, callingconvention =callingconvention.cdecl)]

publicstaticexternintadd(intsm);

[dllimport("mediastream.dll", entrypoint ="add", charset =charset.auto, callingconvention =callingconvention.cdecl)]

publicstaticexternintadd(intsm);

[dllimport("mediastream.dll", entrypoint ="add", charset =charset.auto, callingconvention =callingconvention.cdecl)]

publicstaticexternintadd(intsm);

好了就可以呼叫了add了。

雖然過程很簡單但是摸索了好久才弄出來的。

**:

Linux下C 動態庫

本人是剛畢業的大學生一枚,這是寫的第一篇部落格,若有不對的地方,懇請指正!由於工作原因,不得已在linux下開發專案,而且還是用c 對於c 本人是有一些白痴的。專案完成,在此做一下總結,給自己乙個交代。首先先對動態庫方面的只是做乙個總結 1 動態庫的簡單介紹 首先,動態庫就是動態鏈結庫,本人有些懶,...

C 動態新增屬性

原文 using system using system.collections.generic using system.reflection.emit using system.reflection using system.threading 李劍 namespace copymapfile ...

C 動態新增使用者控制項

主要用到兩個類 assembly和activator,分別來自system.reflection和system命名控制項。本文實現動態新增的主要思想是 通過assembly中的getexecutingassembly 方法來獲取包含 當前執行的 的 程式集,進而使用gettype 通過本專案下的使用...