Håk*_*sen 2 c c# dll c++-cli wrapper
我有一个第三方C库,我需要在C#中使用它.系统的其余部分是用C#编写的,因此使用C++/CLI只是包装器的一个选项.
使用C++/CLI包装C库而不是C#有什么好处?创建C#-wrapper有什么好处吗?
这些库包含一些结构,一些枚举和许多函数.
编辑:是否可以在C#中使用C结构和枚举而不包装它们?
Bot*_*000 5
使用C++/CLI的优点是您可以在同一程序集中编写本机代码和托管代码.
使用C++/CLI时,与C库交互更容易,您可以正常使用所有库,并且仍然可以公开完全托管的.NET接口或类.但是当然C++/CLI增加了一些复杂性.
另一方面,在C#中,您需要重新声明所有结构并使用DllImport在C#中再次声明C函数.
我会说简单的互操作任务(比如一些函数和几个结构),使用C#和PInvoke就可以了.如果使用完整的API需要大量的结构重新定义,固定,转换等等,C++/CLI可能是更好的选择.
归档时间:
14 年,2 月 前
查看次数:
522 次
最近记录: