2013-07-19 65 views
0

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

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

问候,

斯特凡

+0

似乎存在的BACnet协议栈的一个C#版本 - HTTP ://bacsharp.sourceforge.net/ – JMK

+0

请检查此qsns ans我认为它对您有用。 [http://stackoverflow.com/questions/9093292/use-ac-library-from-c-sharp-code][1] [1]:HTTP://计算器。 com/questions/9093292/use -c-library-from -c-sharp-code –

+0

@jmk该网站和文件最后编辑于feb-2008 ...我不认为他们准确了 – typ1804

回答

0

为了解决相似的情况,微软提供的属性,装配和编组提供托管非托管代码之间的互操作性(不知道.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

+0

-1:只有“编组”与OP完全相关,即使这不是真正有用的内容。 – millimoose

+0

我细化了这篇文章,感谢您的评论 – sarepta

+0

但是,如何将a.-file转换为.dll文件? – typ1804