如何在C#中使用C-Library

本文关键字:C-Library | 更新日期: 2023-09-27 18:23:51

我已经从http://sourceforge.net/projects/bacnet/但是它是用c编写的,我想在c中使用它。

我已经读了4个小时关于如何完成它的书,但我没有进一步的了解。大多数答案是用c重新编写代码,但我对c一无所知。我在Code::Blocks中打开了一个工作区来查看代码,并将一个库编译成了一个a.文件。但我该如何使用它呢?

问候,

Stefan

如何在C#中使用C-Library

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