如何在vc++中为软件创建c#包装器
How to create a c# wrapper for a software in VC++?
我需要在c#中创建一个vc++包装器。是否有一种方法可以自动生成代码?
编辑:让我澄清一点:我有一个简单的项目与复杂的数学函数(计算磁偏角)在c++中。它只有三个文件,一个头文件,一个命令行控制器和库。
我在看SWiG,但我发现它是神秘的:p。我正在看c++/CLI。
有需要注意的提示和陷阱吗?
看一下:在。net应用程序中使用非托管c++库(dll)
或者您可以使用c++/CLI
SWiG支持c#。但是c++/CLI包装器将会更加复杂。
你可以看看这个教程:
http://www.codeguru.com/csharp/csharp/cs_data/article.php/c4217我认为这是更好的,如果你做自己的包装比使用任何工具(如果它确实存在)。原因是你可以使用正确的原理创建一个更好的c#包装器,而不是从DLL生成一个函数调用列表。
对于陷阱,我唯一能说的是,既然你要混合管理类和非托管类,请确保你的结构/参数是匹配的(sizeof或types)。
对于大多数简短的问题:这取决于你的设置和要求!-)如果你有一个更多的C风格的接口,你可能能够通过使用互操作来解决你的问题。如果涉及到"真正的"面向对象编程和c++,您可能不得不考虑c++/CLI。这可能很容易,但也可能变得很痛苦——这取决于你的课程。据我所知,目前还没有自动代码生成工具。
相关文章:
- 创建包装升压适配器的自定义范围类
- 如何为 v8::P ersistent<v8::Function> 创建到 c++ 函数的包装器
- 包装器是从 strcat_s() 到 strcat() 吗?如果没有,是否可以创建一个?
- 如何为要在 C# 中使用的静态库创建 C++ 或 C++/CLI 包装器
- 如何创建独立于平台的宏来包装编译器扩展?
- 在 C++ 中为 C 样式对象创建一个透明包装类
- 创建一个允许轻松创建虚拟函数包装器函数的C++宏
- 为 std::bind 创建模板包装器
- 在 boost::d eadline_timer 上创建包装器,无法将参数传递给处理程序函数
- 创建包装了可变类型的元组
- C++ - 错误:为 OpenCV 的 cv::标量::all 创建 C 包装器时出现预期的类型说明符
- 如何在Swig中为非基元数据类型创建包装器
- 通过围绕C++接口创建C包装器,在FORTRAN中调用C++dll文件
- 为库创建 C 包装器C++
- 为非托管程序集动态创建包装
- 为具有大量依赖关系的库创建包装器的正确方法
- 如何为不可创建类创建包装器
- 如何为 c++ 函数创建 c# 包装器
- 如何在 printf 上创建包装器
- 如何在vc++中为软件创建c#包装器