2013-05-05 140 views

回答

2

我在类似情况下所做的是将C++本机dll作为C#和C++项目之间的适配器来实现。 从C#中,您可以使用DllImport访问您的dll界面。 在dll中,您可以访问完整的C++界面,但值得在托管网站上根据您的确切需求进行简化。

例子:

// in the C++ dll: 
extern "C" MY_API void SetInput(double* Values, int Count); 

// in C#: 
[DllImport("MyStuff.dll")] 
public extern static void SetInput(double[] Values, int Count); 
+0

“一个C++本地dll作为一个适配器”你的意思是C++/CLI项目作为C++本地QuantLib dll的封装......对吧? ...有机会看到代码^ _ ^? – 2013-05-05 00:32:59

+0

是的,它可以是托管的C++包装器,但我认为它使事情变得复杂。我创建了一个普通的C接口。 – jmihalicza 2013-05-05 01:39:39

+0

尽管如此,您将不得不编写相当多的代码才能使QuantLib代码适用于普通的C接口。 – 2013-05-05 11:58:57

0

的C++库C#包装已经上市,并在the QuantLib download page分布(这些包装由jmihalicza建议,不是你指的是在你的问题正在进行的C#端口) 。该分布还包含一个选项评估的例子(查看CSharp/examples文件夹)。

+0

是的。我花了2小时试图编译QL Boost cos boost安装程序无法下载几个zip文件。即使我成功了,我也需要安装swig,然后修补它几天..我完全接受了qlnet ..我根本没有那个时间Luigi。 – 2013-05-06 10:38:42

相关问题