使 C++ 软件包和 C# 包访问相同枚举/常量整数的最佳方法

Posted

技术标签:

【中文标题】使 C++ 软件包和 C# 包访问相同枚举/常量整数的最佳方法【英文标题】:Best way to make a C++ software package and C# package access same enumeration/constant ints 【发布时间】:2012-03-22 20:14:03 【问题描述】:

我正在开发一个传输消息的软件包。目前我有一个包含消息 ID 定义的头文件。我的同事正在用 C# 创建一个软件工具,需要访问这些 ID。我们的软件访问这些 ID 的最佳方式是什么?

更多详情: 他和我无法控制我们使用什么语言。他想要制作相同列表的 2 个副本。我总是犹豫是否要复制相同的代码。 (会有很多消息ID)。这两种工具是否有一种简单的方法可以访问相同的 ID?

【问题讨论】:

简单使用cli,看看[这里][1]。 [1]:***.com/questions/935664/… @mo.: 顺便说一下,只有简写 [label](URL) 语法在 cmets 中有效。 [label][ref], [ref]: URL 的东西只能用于其他类型的帖子(问题、答案等)。详情请查看评论右侧的“帮助”按钮。 这很酷,我仍然可以看到链接。 :) 这是一个答案 :) 它被自动转换为评论。这里是一个更好的链接-->way<-- :) 【参考方案1】:

C++/CLI 是你的朋友。我在我的一个项目中遇到了完全相同的场景,我发现 C++/CLI 在这方面非常有用。我的设计基于 3 层:

C#
_______
C++/CLI
_______
C++

这样,我可以轻松重用我的 C++ 定义,而无需任何重复

【讨论】:

【参考方案2】:

您可以在一些声明性的、简单的语法分析中指定 ID,并让您的(自动)构建过程从中生成 C# 和 C++ 源文件。这样你就有了一个单一的来源。

【讨论】:

以上是关于使 C++ 软件包和 C# 包访问相同枚举/常量整数的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章

在 C# 中存储和索引常量

C#视频常量枚举结构体数组

C#图解教程 第十一章 枚举

C#-枚举

C#-枚举

C#-枚举