使用 C# 代码中的 C 库

问题描述 投票:0回答:2

我有一个C语言的库。可以在 C Sharp 中使用吗?

http://zbar.sourceforge.net/是我想使用的库的链接

c# c pinvoke
2个回答
18
投票
可以使用

Platform Invoke 从 C# 调用为 Windows 编译的 C 库。

来自MSDN,进行C函数调用的语法如下:

[DllImport("Kernel32.dll", SetLastError=true)]
static extern Boolean Beep(UInt32 frequency, UInt32 duration);

上面调用了Kernel32.dll中的Beep函数,传入参数频率和持续时间。更复杂的调用可以传递结构体和指向数组的指针、返回值等......

您需要确保 C 库可用的 C 函数被“正确导出”,例如Beep 函数可能是这样声明的: #define DllExport __declspec( dllexport ) DllExport bool Beep(unsigned int frequency, unsigned int duration) { // C Body of Beep function }



0
投票
Swig

为 C 代码创建包装器,以便在 c# 中使用它

© www.soinside.com 2019 - 2024. All rights reserved.