这是一个复杂的情况。我正在重构(从头开始)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/