C# 和 C++ 类继承混合

2024-04-01

我有一堆有趣的程序集想要组合在一起:

  1. 通用汇编(C# 或 C++-CLI)

    public class MyBase
    {
    public void MethodA()
    { ... }
    private void MethodB()
    { ... }
    protected virtual MethodC()
    { ... }
    }
    
  2. 测试代码程序集(全部 C++-CLI)

    public class MySpecific : public MyBase{
    protected: override MethodC();
    };
    
  3. 测试模拟器(C#)

    MySpecific obj = new MySpecific();
    obj.MethodC();
    

虽然程序集 1 可以是 C++-CLI 以使事情更简单,但我真的很想将程序集 3 保留在 C# 中。这主要是一个练习,看看是否可以在任一方向上完成继承,但我也有一个实际案例,该堆栈很有用。

我发现的第一个问题是 C++-CLI 程序集无法编译,因为它无法将 MyBase 识别为类,即使我引用了程序集 1 以及看起来正确的命名空间。

如何编写语言可移植的类?


我认为你必须将 MySpecific 声明为托管类,如下所示:

public ref class MySpecific : public MyBase { ... }

有关详细信息,请参阅 CLI/C++ 文档。如果不进行修改,您将无法使用旧的 C++ 代码,但我认为您想到的一切都应该是可能的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 和 C++ 类继承混合 的相关文章

随机推荐

  • 重塑数据以将列值拆分为列

    df lt data frame animal c dog dog cat dog cat cat hunger c 0 1 1 0 1 1 我有一个像上面这样的数据框 有两列 一列包含类别 另一列包含二进制数据 我希望重塑数据框 将类别
  • 如何更改 Atom 使用的默认 Python 版本?

    我最近开始使用Atom 在过去的几天里 我一直在寻找如何更改Atom中使用的默认版本 默认版本目前是python 2 7 但我想使用3 6 有谁可以更改默认路径吗 我尝试将配置文件添加到 脚本 包中 但当我重新启动 Atom 时 它仍然恢复
  • 显示“未找到匹配项”或隐藏 DIV 结果(AJAX 和 MySQL)

    我有一个搜索栏 可以使用 MySQL PHP 和 JS 显示 AJAX 实时搜索结果 问题是我不知道如何让搜索结果显示 未找到匹配项 或隐藏结果div当查询与 MySQL 数据库中的任何 名称 不匹配时 完全不匹配 目前 当用户在搜索栏中输
  • Android Studio 构建 gradle OutOfMemoryError

    我是安卓新手 我在 Android studio 中导入 Github 项目 但我看到这个问题 Error java lang OutOfMemoryError Java heap space 错误 java lang OutOfMemor
  • 在运行时动态更改报表的共享数据源

    我希望使用 SSRS 进行多租户报告 并且希望能够为我的报告提供运行时选择的共享数据源 我这是什么意思 好吧 我可以灵活处理 但我认为最有可能的两种可能性是 但是 我也对其他可能性持开放态度 共享数据源由客户端的身份验证决定 就我而言 客户
  • C# 解析宽松的 json 来制作一棵树

    所以我需要解析类似这样的文件 pl GENERIC BACK COFNIJ WAIT CZEKAJ PAGES ABOUTME ID ID INFO STATUS STATUS TOP MENU LOGGED Zalogowany OPTI
  • PHP CLI - 一段时间后要求用户输入或执行操作

    我正在尝试创建一个 PHP 脚本 其中我要求用户选择一个选项 基本上类似于 echo Type number of your choice below echo 1 Perform Action 1 echo 2 Perform Actio
  • 在 Ember.js 中,存储保存和存储提交之间有什么区别?

    有什么区别 this get store commit and this get store save 没有区别 save是一个别名commit与此一起介绍的PR 使 commit 成为 save 的别名 https github com
  • OpenXML 在写入元素时挂起

    我有一个程序 它基本上从数据库中提取数据 将其缓存到文件中 然后将该数据导出为多种格式 Excel Excel 2003 CSV 我正在使用 OpenXML SDK 2 0 来完成 Excel 工作 这些导出过程并行运行 使用Paralle
  • 如何将世界上所有国家/城市/州放入我的数据库?

    我有一个困难的架构和网络问题 我正在尝试为世界上每个城市制作一个关于徒步旅行的页面http www comehike com http www comehike com 我必须以某种方式导入世界上所有的城市 并按州构建它们 而州又按国家构建
  • FILTER_VALIDATE_URL 是否过于严格?

    In PHP filter var www example com FILTER VALIDATE URL 回报false 它是否正确 不是www example com有效的 URL 或协议 http ftp 等 需要在 URL 中明确说
  • 将 C# 单元测试名称转换为英文(testdox 样式)

    我有一大堆用 MbUnit 编写的单元测试 我想从测试名称生成简单的英语句子 这里介绍一下这个概念 http dannorth net introducing bdd http dannorth net introducing bdd 这是
  • 基于类的vue组件的标签名称是什么

    参考下面的链接 我们可以使用用 TypeScript 编写的基于类的 vue 组件 使用这些自定义组件的正确方法是什么 例如 下面的 Es5 代码定义了一个可以在其他组件模板中使用的组件 例如
  • 带分组的 WPF DataGrid 虚拟化

    我正在使用来自 CodePlex 的 WPF DataGrid http wpf codeplex com 我需要让虚拟化与分组一起使用 This question https stackoverflow com questions 110
  • 获取页面事件、选项卡关闭、失去焦点?

    问题是如何在特定选项卡上查询此类事件 用户已加载具有特定 URL 的选项卡 例如 google com 我认为最简单的方法是使用 chrome tabs query 然后您可以获取带有 url 的活动选项卡 用户已关闭选项卡 该选项卡处于非
  • 是否有任何选项可以禁用开火服务器上的群聊消息历史记录?

    我一直在创造group chat application 在实现群聊功能时我面临问题 当我每次join the room open fire sends last two days messages 这是我每次加入房间时收到的帖子消息
  • 在页面加载时显示 AJAX 加载器

    你好 我对 javascript 很陌生 不知道如何使用它 我希望 AJAX 加载器在页面加载时出现 加载完成后我希望加载器消失 谁能给我发一个代码吗 通常 这是通过在内容顶部显示 隐藏一两个 div 来完成的 您可以从以下位置获取精美的加
  • Sharepoint 2013。使用 JavaScript 的多值查找字段

    有没有办法使用 JavaScript 客户端对象模型编辑多值查找字段 我需要删除一个或多个查找值 并最终添加一个或多个值 我到处搜索 我阅读MSDN文档 我也看看我的桌子底下 Thanks Multiple Column Lookup值表示
  • Flutter:在启​​动时执行函数 - 等待 HTTP 响应解析器提取图像 URL

    我正在开发一个 Flutter 应用程序 我需要从 API 获取几乎所有内容 包括图像 颜色 文本等 所以我应该做的是构建应用程序的主要结构 然后用 API 提供的信息填充所有内容 当应用程序开始获取响应并初始化变量以在应用程序中使用它们时
  • C# 和 C++ 类继承混合

    我有一堆有趣的程序集想要组合在一起 通用汇编 C 或 C CLI public class MyBase public void MethodA private void MethodB protected virtual MethodC