时间:2010-07-26 10:32:25

标签: c# c++ com-interop swig quantlib

1 个答案:

答案 0 :(得分:8)

因此看起来SWIG的C#绑定可用。需要浏览 SVN repository or list of files on SouceForge才能找到它们。

SWIG文件夹包含多个子文件夹,具体取决于您选择的语言,在我的情况下,C#是我感兴趣的文件夹。您需要先下载SWIG,然后将可执行文件下载到系统PATH变量。

请务必阅读Readme.txt,因为它包含有关还需要创建的QL_DIR环境变量的详细信息。

这可能是VS Express的限制 - 但解决方案文件包含C#项目和C ++项目,其中只能随时打开C#或C ++部分。我的建议是为C ++和C#项目创建单独的解决方案文件。

来自.Net背景,lib文件,obj文件以及与c ++相关的所有其他爵士乐需要一些时间才能使用。

获取有效C#库的步骤

  1. 按照here
  2. 所述下载QuantLib和Boost
  3. 下载QuantLib-SWIG folder from SourceForge的焦油球。 修改:主页上有download of the zip可用。它列在子文件夹中。检查Bindings
  4. 下的v1.0文件夹
  5. 运行位于swig.cmd文件夹中的QuantLib-SWIG\CSharp文件(您需要先下载SWIG() - >这会为Quantlib生成cs包装文件。
  6. 构建c ++项目NQuantLibc - 请注意,此处创建的dll需要随NQuantlib C#built dll一起提供。它需要放在DLLImport属性可读的位置。 (有关位置列表,请参阅Dynamic-Link Library Search Order on MSDN
  7. 构建C#项目NQuantLib
  8. 关于我的开发环境,我需要什么? <击> 似乎当前版本的QuantLib仅使用VS 2008构建。对VS 2010进行了一些更改,这会导致编译时出现一些问题。 C#项目构建良好,但只记得将目标框架从v4更改为v3.5到更低。

    注意:在编写本文时,C ++ SWIG项目的源文件中存在QL_HEX_VERSION编号的问题。运行swig.cmd后打开VS项目,并将quantlib_wrap.cpp的第344行更改为

    #if QL_HEX_VERSION < 0x010001f0//0x010100f0
    

    我已通过电子邮件发送项目作者,等待反馈。 编辑:Luigi,正确告诉我这是SVN中代码的任何问题(我使用过)。他建议应该使用QuantLib-SWIG-1.0.zip绑定。

    Quantlib还在最新版本的VC++ 2010上构建。