【问题标题】:Use a C library from C# code从 C# 代码使用 C 库
【发布时间】:2012-02-01 09:14:32
【问题描述】:

我有一个 C 语言库。是否可以在升 C 中使用它。

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

【问题讨论】:

  • 绝对与 WPF 无关。我重新标记它。

标签: c# c pinvoke


【解决方案1】:

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

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

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

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

您需要确保 C 库可用的 C 函数是 exported appropriately,例如Beep 函数可能是这样声明的:

#define DllExport   __declspec( dllexport )
DllExport bool Beep(unsigned int frequency, unsigned int duration)
{
    // C Body of Beep function
}

【讨论】:

    猜你喜欢
    • 2021-05-04
    • 2022-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多