你能在 C# 中编写一段 c++ 代码吗?

Posted

技术标签:

【中文标题】你能在 C# 中编写一段 c++ 代码吗?【英文标题】:Can you write a block of c++ code inside C#? 【发布时间】:2008-10-13 00:30:28 【问题描述】:

我听说你可以在 C# 代码中直接下拉到 C++。 这是怎么做到的?还是我听错了?

注意:我不是指 C++/CLI。

【问题讨论】:

【参考方案1】:

您可能会想到unsafe blocks,在那里您可以编写看起来很像 C++ 的代码,因为您可以使用指针。

【讨论】:

【参考方案2】:

你听错了。

【讨论】:

【参考方案3】:

您可以从 C 下拉到汇编,因为 C 是指令集半不可知论的汇编。

您可以从 C++ 降级到 C,因为 C++ 是 C 加上其他一些使其丑陋或美得可怕的东西,这取决于您的观点。

你不能从 C# 降到 C++,因为它们是完全不同的东西。除了花括号和分号语法之外,它们之间没有直接关系。 C# 不是 C++ 的超集,也不是它的子集,也不是它的兄弟(但可能是第二个表亲)。

也就是说,C# 提供了在所有抽象级别与外部代码交互的工具,从 Platform-Invoke(调用用 C 编写的函数)到 COM 再到各种其他类型。但 C# 本身与这些东西没有直接关系。

【讨论】:

没有理由不能实现,但我明白它没有实现。【参考方案4】:

您为什么需要这样做?您可以引用本机 C 库,但我非常怀疑您是否可以在托管代码中运行本机代码。

【讨论】:

【参考方案5】:

您可以通过 .NET 轻松地与 COM 对象交互。

【讨论】:

以上是关于你能在 C# 中编写一段 c++ 代码吗?的主要内容,如果未能解决你的问题,请参考以下文章

用 C# 编写驱动程序

你能在 SASS/SCSS CSS 中使用多个条件吗

你能在返回之前解决一个 angularjs 承诺吗?

你能在 Rails 中获取数据库用户名、密码、数据库名称吗?

你能在打开包装时发现 nil 吗?

我可以在 Windows Visual Studio 中编写 C++ 或任何代码然后“导入”到 Linux 吗?