C# · 12月 26, 2021

从C#代码使用C库

我有一个C语言的图书馆.是否可以在C sharp中使用它.

http://zbar.sourceforge.net/是我想要使用的图书馆的链接

解决方法 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}