问题标签 [managed-c++]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
21662 浏览

visual-c++ - 为什么 c++ 类定义中的公共引用

首先,我想明确一点,这对 C++ 来说是全新的,所以这可能是一个简单且有些明显的问题。在我正在阅读的名为 C++ Primer 的 C++ 书中,通过以下方式定义了一个类:

但是,在 VS2008 中,编译器不喜欢这样。但是通过在课前添加 public ref,如下所示:

它在编译器中通过。谁能解释一下只用类和公共参考类定义有什么区别?我真的很感激。

0 投票
3 回答
527 浏览

.net - 托管 C++ 中的 double.Parse 中的问题

在托管 C++ 中解析双精度值时,我遇到了一个奇怪的问题。可能是我做错了什么。当我做:

结果的输出是0.006000000000001。为什么它附加一个1?

此外,当我将值四舍五入到小数点后 5 位时,它会失败。我在做:

result2总是0.006000000000001。我究竟做错了什么?

0 投票
4 回答
4199 浏览

c++ - 为什么 WPF 不支持 C++.NET - WinForms 的方式?

作为一个 C++ 坚持者,这真的让我很烦恼。我一直很喜欢微软大约十年前提出的“独立于语言的框架”的想法。为什么他们放弃了这个想法?有谁知道它背后的原因?

0 投票
1 回答
2638 浏览

c++-cli - 托管类型的全局对象

有没有办法声明/定义托管类型的全局/静态对象?

0 投票
3 回答
1076 浏览

c# - CodeModel 和其他 COM 对象的托管 C++ 与 C# 性能

我正在为 Visual Studio 2008 创建一个扩展,并且因为我不想为 C++ 编写自己的解析器(我不是受虐狂),所以我正在使用 VCCodeModel。

从这些 COM 对象中获取一个简单的字段比我正在做的任何其他操作花费的时间要多几个数量级,并且由于我正在深入到非常大的 C++ 项目的方法级别,因此我在递归的最低级别有这种低效率.

前面的代码将遍历项目基础级别的所有函数,将它们转换为 XML,然后保存它们。XML 方法将调用 VCCodeFunction 中的多个字段,例如名称、参数等。

为此目的,托管 C++ 是否比 C# 更快?我对托管 C++ 的后端与 C# 的不同之处了解不足,但我的直觉会让我相信 C++ 中托管代码和非托管代码之间的“上下文切换”成本较少,但我错了吗?由于我认为使用 CodeModel 在 C++ 中的托管代码和非托管代码之间反复切换,我的速度有所放缓,所以我假设托管 C++ 会更快是正确的吗?

0 投票
1 回答
1358 浏览

.net - 创建 IDispatch .NET COM 类,其中内容仅在运行时可用

我目前正在将一些代码从本机 C++ 移动到托管 C++(纯)。该代码涉及与 Windows Active Scripting 的交互。目前,我们的本机代码提供了一个名为“ObjectDispatch”的类,它实现了“IDispatch”(使用 ATL)。此类实现在运行时查询我们自己的本机类“Object”以确定它支持哪些方法和属性,然后将任何“IDispatch::Invoke”调用转发给该“Object”。

我已经看到使用支持“IDispatch”的 .NET COM 互操作的示例,但是那些从 IDL 派生或基于 .NET 类规范的实现都不会在运行时发生。

如果在给定类上使用以下属性,.NET COM 互操作似乎可以在编译时生成“IDispatch”的实现:

我假设我可以在运行时动态生成一个支持该属性的类。但是,在我尝试之前,我想知道是否有人知道如何通过与本机代码一起使用的类似方式来实现这一点。

请注意,此时“对象”类仍作为本机类。

0 投票
7 回答
5191 浏览

c++ - 什么是回调?它是做什么用的以及它是如何在例如 C++ 中实现的

我意识到这是一个新手问题,但是当我尝试学习 C++ 时,我经常遇到这个表达“回调”的问题。我用谷歌搜索了它并检查了维基百科,但没有找到一个好的解释。我熟悉一些 Java 和 C#,但听起来不太可能,我从来没有真正理解回调的含义。

如果有人知道如何向一个简单的外行解释这个术语,我将非常感激。

0 投票
1 回答
960 浏览

managed-c++ - C++/CLI - 帮助 pin_ptr

我正在编写一个使用一些非托管函数的包装应用程序,并且我使用了很多 pin_ptr。

我的问题是,大多数时候我在方法调用中使用 pin_ptr,并且 pin_ptr 变量也在方法调用中声明。当代码进入我们的方法时,我会因为它不再固定而有任何问题吗?我应该将声明移至类范围吗?

谢谢!

0 投票
1 回答
279 浏览

.net - Visual Studio 8:混合模式程序集中的构建时间

我有一个由大约 50 个源文件组成的 C++/CLI 程序集。此程序集中的代码静态链接到许多 C++ 库以执行各种“繁重”类型的任务。

我正在使用 Visual Studio 8 (2005) SP1 来构建这个程序集。

在一台不错的双核机器上,通过“仅项目”->“仅重建”仅构建此程序集(无依赖关系等)大约需要 4.5 分钟。以下是带有大致时间注释的缩写构建输出:

我应该如何开始调试为什么这个程序集需要这么长时间才能构建?编译和链接时间虽然不是很好,但可能与我对这种规模的项目的期望差不多。令我担心的是,我看到了两个“生成代码”步骤,每个步骤都比大多数其他项目花费的时间长得多。

我的第一个猜测是,这与链接到程序集的非托管代码的数量有关。但是,我有几个托管应用程序项目使用同样多的本机代码,并且构建时间非常合理。

有谁知道究竟是什么导致了两个“生成代码”步骤需要这么长时间?是否有我缺少的项目设置?

0 投票
4 回答
15775 浏览

multithreading - 托管 C++ 中的 C# 的 lock()

托管 C++ 是否与 C# 的lock()和 VB 的 SyncLock 等效?如果是这样,我该如何使用它?