.net - 将托管 C++ 添加到 C# GUI

标签 .net visual-c++ visual-studio-2012 c++-cli managed

新的 Visual Studio 2012 已删除 Windows 窗体应用程序 (WFA) 作为模板。 MS 表示这样做的原因是 VC++ 不是制作 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# 代码中呢?

最佳答案

我相信你需要专门创建一个托管类;即

ref class Foo
{
    String ^managedString; 
};

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

See

如果将 c++/cli 类库添加为 c# 项目中的引用,您将能够在命名空间中看到该类,并像任何其他类一样使用它们。

关于.net - 将托管 C++ 添加到 C# GUI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15188858/

相关文章:

C++ 调试断言失败,表达式 : _BLOCK_TYPE_IS_VALID(pHead - blockUse )

asp.net - VS2012 发布网站 dll 而不是 cs 文件

visual-studio-2012 - 如何删除 TFS 2012 中的工作项?

.net - 在 Linux/Ubuntu 上大规模部署 .net mono 应用程序

.net - 如何以编程方式管理 WCF 日志文件大小?

c++ - 这个 noexcept 声明有效吗?

c++ - 列表排序不正确

c# - .NET File.Create,之后无法删除文件

C# 左连接两个数据表

c++ - 从模块导入时,线程局部静态变量未初始化