如何在VC ++中为软件创建c#包装器?

时间:2011-04-13 12:40:53

标签: c# c++ wrapper

我需要在C#中创建一个VC ++包装器。有没有办法自动生成代码?

编辑:让我澄清一下:我有一个简单的项目,在c ++中有复杂的数学函数(计算磁偏角)。它只有三个文件,一个标题,一个命令行控制器和库。

我在看SWiG,但我发现它很神秘:P。我正在看看C ++ / CLI。

需要注意哪些提示和陷阱?

4 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

至于大多数简短问题:这取决于您的设置和要求! ;-)如果你有一个更多的C风格界面,你可以通过使用Interop来解决你的问题。如果涉及“真正的”OO编程和C ++,您可能必须查看C ++ / CLI。这可能很容易,但也可能会变得很痛苦 - 取决于你的课程。据我所知,没有自动代码生成工具。

答案 2 :(得分:1)

SWiG支持C#。但是,与SWiG自动生成的一样,C ++ / CLI包装器将更像“.NET”。

答案 3 :(得分:1)

您可以查看本教程:

http://www.codeguru.com/csharp/csharp/cs_data/article.php/c4217

我认为如果你制作自己的包装器比使用任何工具(如果它确实存在)更好。原因是您可以使用正确的哲学创建更好的C#包装器,而不是从DLL生成函数调用列表。

对于陷阱,我唯一可以说的是,既然你要混合使用管理类和非管理类,请确保你的结构/参数匹配(sizeof或types)。