這個網上很多。但是沒有能執行起來的。自己經過一周多的摸索進行稍微總結下。首先是
c++下的宣告:
標頭檔案:
extern
"c"
_declspec(
dllexport
)
int
add(
int
sm);
cpp檔案:
int
add(
int
sm)
標頭檔案:
extern
"c"
_declspec(
dllexport
)
int
add(
int
sm);
cpp檔案:
int
add(
int
sm)
生成dll把所生成的拷到c#的bin/debug下
在c#下呼叫:
[dllimport(
"mediastream.dll"
, entrypoint =
"add"
, charset =charset.auto, callingconvention =callingconvention.cdecl)]
public
static
extern
int
add(
int
sm);
[dllimport(
"mediastream.dll"
, entrypoint =
"add"
, charset =charset.auto, callingconvention =callingconvention.cdecl)]
public
static
extern
int
add(
int
sm);
[dllimport("mediastream.dll"
, entrypoint =
"add"
, charset =charset.auto, callingconvention =callingconvention.cdecl)]
public
static
extern
int
add(
int
sm);
[dllimport(
"mediastream.dll"
, entrypoint =
"add"
, charset =charset.auto, callingconvention =callingconvention.cdecl)]
public
static
extern
int
add(
int
sm);
好了就可以呼叫了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 通過本專案下的使用...