c# - 将 c#/WPF GUI 围绕 c++/cli 围绕 native c++ 包装

标签 c# wpf c++-cli interop native

这是一个复杂的情况。我正在重构(从头开始)C++,它必须用作 CGI 脚本和独立应用程序的核心。

不幸的是,我从大学开始就没有写过C++,而更熟悉c#/Java。所以我将使用 WPF 作为 GUI。根据我的研究显示,这意味着我将:

1) 在非托管 C++ 中重构基本代码(支持智能感知,嗯?)

2) 将该基类包装在托管类库中

3) 将步骤 2 包装在 C#/WPF GUI 中,通过互操作 (CLI/CLR) 引用它。

我相信,第 2 步将被详细记录。但是,我从顶部开始,找不到任何关于如何实例化和使用在托管 C++ 中创建/公开的类的具体信息。

如果我有勇气的话,我会用 C# 编写整个内容(不需要核心效率),但我没有这个选择。

有人可以为我指明第 3 步的正确方向,以便我可以开始研究吗?我不想让任何人为我做作业(可以这么说),但我自己对这个过程的研究没有结果。

最佳答案

如果将非托管 C++ 类包装在托管 CLI/C++ 对象中,则不需要 Interop 来调用托管类(Visual C++ 将在同一库中编译托管和非托管 C++)。

只需将混合托管/非托管库引用到托管 C# 应用程序,公开的托管对象将像任何普通对象一样运行。

要获得良好的起点,请查看 this文章。

关于c# - 将 c#/WPF GUI 围绕 c++/cli 围绕 native c++ 包装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6362434/

相关文章:

c# - 无法检索 WPF 中动态生成的按钮的内容

.net - 为什么将 IP 地址而不是域名传递给 System::Net::Mail::SmtpClient 会导致它抛出身份验证错误?

c++-cli - .Net Core 中的 C++/CLI 支持

c# - 从一个窗口访问另一个窗口中的变量值

c# - 为什么多个 try..catch block 在 C# 2.0 中的同一方法中无法正常工作?

wpf - 有人知道用于调整具有跨单元格的网格列大小的算法吗? (WPF)

面向.NET Core 3.1的C++/CLI

c# - System.Net.Mail.SmtpSender Dispose(bool) 的两种不同实现?

c# - 如何使用 Massive ORM 实现验证?

wpf - 没有框架的复合 WPF 模块中的命令处理