问题标签 [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 投票
2 回答
2195 浏览

enums - 在 Managed C++ 2005 中声明枚举的正确方法?

如果我使用 /clr:oldSyntax 以下应该可以工作:

非oldSyntax中的等价物是什么?如何在 .NET 2.0 的托管 C++ 中声明“托管”枚举?

编辑: 当我遵循 JaredPar 的建议时,如果我尝试将 IceCreamFlavor 传递给带有签名的函数:

通过运行

我得到错误:

0 投票
2 回答
637 浏览

c++ - 混合托管和非托管 C++ 的最佳单元测试工具是什么?

我将开始为混合了托管和非托管 C++ 的代码库实施一些单元测试。NUnit 可以用非托管代码破解它吗?有更好的选择吗?

0 投票
3 回答
1401 浏览

visual-studio-2008 - 动态链接托管 C++ 类库中的非托管 dll

我通过试验 n 错误弄清楚了如何将非托管静态库链接到托管 C++ dll,但我不知道如何动态包含 DLL。有谁知道如何在 Visual Studio 2008 中执行此操作?

0 投票
1 回答
417 浏览

c++ - 将 dll 引用添加到托管 c++ 项目时出现编译器错误

我正在使用 VS 2008 并且在我的 C++ 项目中添加对托管 c++ 文件的 dll 引用时偶尔会出现编译器错误。我正在尝试添加对 dll 的引用,以便能够使用智能指针。 例如:#import items.tlb

问题是编译器在items.tlh内的零星地方崩溃,几乎就像删除了缺失的字节块一样,但是当我打开文件时,我找不到对上述错误的任何引用。

我多次尝试重建整个项目,在不同的机器上尝试过,但是虽然编译器错误不一致并且有时会一起消失,但重新重建有时会带来问题。有人告诉我,生成的.tlh文件的大小可能是一个原因,但它并不能真正解决我的问题或为我指明正确的方向。

有没有人经历过同样的症状?谢谢

0 投票
3 回答
3943 浏览

.net - .NET 中的二进制数据?(C++/CLI)

在 .NET 中存储二进制数据的首选方式是什么?

我试过这个:

并得到这个错误:

有没有办法管理字节数组?

0 投票
2 回答
4560 浏览

c++-cli - 订阅事件的 C++/CLI 语法是什么?

我正在更新一些旧的托管 C++ 代码,如下所示:

在哪里

  • EventSource是发布事件的类
  • instanceOfEventSource是该类的一个实例
  • EventSource::MyEventHandlerDelegate是事件的委托类型
  • MyEventHandlerMethod是当前类(其中“this”是一个实例)中的(非静态)方法,其签名匹配 EventSource::MyEventHandlerDelegate

在 C++/CLI 中正确的语法是什么?

0 投票
3 回答
3737 浏览

visual-c++ - 您可以从非托管 C++ 类派生托管 C++ 类吗?

我有一个未管理的 C++ 类,我用未管理的 dll 编写。我有一个引用非托管 dll 的托管 dll。托管 dll 中的类可以派生自非托管类吗?

使用 Visual Studio 2008

0 投票
3 回答
482 浏览

c++ - 内存分配

我的 STRUCT1 结构声明如下

STRUCT2 也是 STRUCT1 内部的另一个结构

然后我有一个指向它的指针,如下所示

我必须根据 nbrRequested 为 STRUCT1 数组分配内存到目前为止我有

但如果 nbrRequested 大于 500,则循环进入无限状态并且应用程序挂起。

有没有更好的方法来分配内存而不使用 for 循环

0 投票
2 回答
547 浏览

.net - 是否可以事后确定 .NET 程序集是用哪种语言编写的?

这最初是作为一种查找 C++/CLI 和托管 C++ 程序集的方法,以便可以测试它们内部的所有类,以确保重新实现所有继承的方法。我想将此添加为构建过程步骤,以确保它不再发生。

考虑到这个问题也让我有点好奇,因为能够确定使用的任何 .NET 语言会很有趣。因此,我走得更远,比较了所有 .NET 语言的程序集。到目前为止,这是我通过我编写的一个小程序发现的,它通过反射比较任何一组 .NET 程序集的类型和属性数据:

  • C# - 有 AssemblyConfigurationAttribute,有 GuidAttribute
  • VB - 有许多额外的“我的”类型(例如 MyApplication、MySettings),有 GuidAttibute
  • F# - 有一个 FSharpInterfaceDataVersionAttribute,它还指定使用的编译器的版本。
  • C++(除 /clr:safe 之外的所有) - 有一堆额外的类型(FrameInfo、type_info)
  • C++ /clr:safe - 似乎没有独特的反射特性。

按此顺序解析可能是合理的:

  1. 如果它具有 FSharpInterfaceDataVersionAttribute,则为 F#
  2. 如果它在我发现的大量额外类型中有任何一个,那就是 C++。
  3. 如果它具有“My*”类型,则它是 VB。
  4. 如果它具有 AssemblyConfigurationAttribute 或 GuidAttribute,则为 C#
  5. 很可能是 C++ /clr:Safe

然而,由于这是一个可怕的 hack,我想在这里检查以确保没有其他选项可用。

0 投票
1 回答
1455 浏览

version - 托管 C++:如何让我的非托管版本号与我的程序集版本号匹配

我有一个托管的 c++ 项目。

如何使 DLL 的版本信息(在资源管理器中看到并由安装程序使用)与 Assembly Version 属性中生成的版本信息匹配?

装配信息.cpp:

这个问题在这里讨论。