c# - 通过 SWIG 将 Quantlib 和另一个库公开给 C#

标签 c# c++ swig quantlib quantlib-swig

编译和链接 Quantlib 需要一些时间,因为它不是一个小项目。我正在 Quantlib 之上构建一些附加功能,我想将这些附加功能保留在一个单独的项目中。

有没有办法通过 SWIG 轻松地将两个 C++ 项目公开到一个库中?因为我的项目很小,只有几个类,所以我可以轻松地负担得起手动完成 SWIG 自动化的工作。但是,我真的只想向我的用户部署最少的文件,即由 Quantlib-SWIG 构建的两个 dll。

最佳答案

我不是特别了解 Quantlib,但一般来说,使用 SWIG 执行此操作应该非常简单:SWIG 的 C# 模块支持 dllimport 选项,该选项允许您指定为P/Invoke 方法(有关详细信息,请参阅 SWIG 手册的 C# 部分)。

因此,您只需为您的扩展创建一个单独的 SWIG 接口(interface)文件,将 dllimport 设置为 Quantlib 使用的名称,然后将两个 C++ 胶水代码文件编译为一个 DLL,用于 Quantlib 和您的自己的代码。

关于c# - 通过 SWIG 将 Quantlib 和另一个库公开给 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5238196/

相关文章:

C++ Qt : Can't compile GoldenDict

c++ - swig perl typemap(out) std::vector<std::string> 没有在 perl 中返回所需的输出

swig - 在 SWIG 接口(interface)中忽略 __attribute__((packed)) 是否总是安全的?

swig - 使用 Swig 忽略特定的重载方法

C# - 将字符串转换为类对象

c# - mysql 查询不工作

c++ - 部分名称搜索

c# - 有没有办法在 xaml 中隐藏 ListView?

c# - 在 C# 中不使用 Invoke 访问控件

c++ - String.replace() 和动态内存