2013-03-03 50 views
1

新的Visual Studio 2012已将Windows窗体应用程序(WFA)作为模板删除。 MS的原因是,VC++不是实现GUI的最佳方式。所以为了获得最大的性能和可移植性,我想使用C++进行数字运算,并使用C#作为GUI。将托管的C++添加到C#GUI

因为我从头开始,我没有理由不使用C++/CLI进行C++开发 - 所以所有的C++都将使用托管的C++。我明白我可以使用C++ DLL,但我宁愿不要。

我可以将C++/CLI项目添加到也包含C#WFA项目的解决方案中。我可以运行C++/CLI项目来使所有C++正常工作。但我对让C#项目访问C++/CLI类的最佳方式感到困惑。当我向C#项目“添加引用”时,它允许我添加C++/CLI项目作为参考。但是,如何将C++中定义的类添加到C#代码中?

+0

我会诚实的说,如果你从头开始......用C#做这一切。 – 2013-03-03 22:30:20

+0

C++/CLI的要点是可以轻松与非托管C++代码进行互操作。在C++/CLI中只编写* ref类*会影响目的,它会生成与C#完全相同的代码。 – 2013-03-04 01:29:33

回答

1

我相信你需要专门做一个托管班;即

ref class Foo 
{ 
    String ^managedString; 
}; 

并且公共变量也必须是托管类型;

See

如果添加了C++/CLI类库为C#项目的引用,你就可以看到命名空间中的类,并使用它们像任何其他类。