如何在C#中使用C-Library

时间:2013-07-19 11:44:57

标签: c# c .a

我从http://sourceforge.net/projects/bacnet/下载了一个BACnet-Stack,但它是用c编写的,我想在c#中使用它。

我现在已经阅读了4个小时关于如何完成它但我不再进一步了。大多数答案是在c#中重新编写代码,但我不知道c。我在Code :: Blocks中打开了一个工作区来查看代码并将库编译成一个文件。但我该如何使用呢?

问候,

的Stefan

2 个答案:

答案 0 :(得分:0)

为解决类似情况,Microsoft提供了属性,程序集和编组,以提供托管非托管代码(不是.net识别/在clr边界外运行)和托管遗留COM之间的互操作性。
调查动力学的使用和(动态语言运行时 - DLR)应该更好。
代码示例(使用kernel32.dll)作为从托管上下文中调用非托管代码的示例

[DllImport("kernel32.dll", EntryPoint="MoveFile",
ExactSpelling=false, CharSet=CharSet.Unicode,
SetLastError=true)]
static extern bool MoveFile(string sourceFile, string destinationFile);

//calling the function
static void Main()
{
    MoveFile("sheet.xls", @"c:\sheet.xls");
}

另请查看此pdf:http://www.nag.com/IndustryArticles/Calling_C_Library_DLLs_from_C_Sharp.pdf

答案 1 :(得分:0)

顺便说一句; BACsharp 项目具有可以借鉴的开端/艺术燃料-您最好/最好将使用 Winform 计时器替换为通用计时器,但大约一年前我发现了一个 C# NuGet 包;你可能也想看一眼那个(?)。