0

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

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

问候,

斯特凡

4

2 回答 2

1

为了解决类似的情况,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

于 2013-07-19T11:52:36.030 回答
0

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

于 2021-04-17T14:30:29.853 回答