在C 中呼叫C語言標準動態庫方法

2021-06-06 16:25:36 字數 1253 閱讀 6062

← cisco packet tracer 5.0軟體深入詳解使用教程(3)

詳解網路嗅探工具的原理|sniffer|wireshark →

2010 年 07 月 19 日

seth

c# & .net程式設計

go to comment

/out:mylib.dll

/dll

/implib:mylib.lib

mylib.obj

creating library mylib.lib and object mylib.exp

確信有以上輸出, 說明編譯成功生成了動態庫.

2.編寫c-sharp程式呼叫該動態庫

using system;

using system.runtime.interopservices;//這是用到dllimport時候要引入的包

public class invokedll

}儲存為invokedll.cs檔案, 與mylib.dll置於同一目錄, 編譯該檔案.

h:\xschool\c#-school\howto>csc invokedll.cs

將生成invokedll.exe, 可以執行該檔案.

另付:c#呼叫c函式的方法:

方法一:

1.新建visual c++型別的win32專案

c語言的函式定義如下:

extern 「c」 __declspec(dllexport) int fntestwin32(void);

實現如下

extern 「c」 __declspec(dllexport) int fntestwin32(void)

工程屬性頁[常規]->[配置型別]選擇[動態庫.dll]

會生成.lib和.dll檔案。用dependency工具能看到fntestwin32函式,因為使用了extern 「c」

2.c#工程中

[dllimport("testwin32.dll", entrypoint = "fntestwin32", charset = charset.ansi)]

private static extern int fntestwin32();

把win32專案生成的dll拷貝到c#生成的exe檔案,就可以呼叫了。

方法二:

1.新建win32工程

直接使用c語言,函式定義不使用extern 「c」 __declspec(dllexport)

工程屬性頁[常規]->[配置型別]選擇[靜態庫(.lib)]

python呼叫C語言動態庫

python完美相容c語言,有了ctypes 可以呼叫c相關 如果是c 編譯的時候加上 extern c 就可以了 如果是一些複雜型別比如結構體,類,聯合一些 可以考慮用boost.python exp.c include int add int a,int b 編譯生成動態庫add.so gcc ...

在C 中動態呼叫WebService

using system using system.io using system.net using system.reflection using system.codedom using system.codedom.compiler using microsoft.csharp using ...

c語言呼叫c語言的so動態庫

1.環境 ubuntu14.o4 gcc 4.8.4 2.庫檔案生成 1 原始碼 int add int a,int b 2 生成庫檔案 cd到cltest.c所在目錄,輸入命令 gcc shared o libcltest.so cltest.c會在當前目錄生成檔案libcltest.so 3.主...