问题标签 [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.
enums - 在 Managed C++ 2005 中声明枚举的正确方法?
如果我使用 /clr:oldSyntax 以下应该可以工作:
非oldSyntax中的等价物是什么?如何在 .NET 2.0 的托管 C++ 中声明“托管”枚举?
编辑: 当我遵循 JaredPar 的建议时,如果我尝试将 IceCreamFlavor 传递给带有签名的函数:
通过运行
我得到错误:
c++ - 混合托管和非托管 C++ 的最佳单元测试工具是什么?
我将开始为混合了托管和非托管 C++ 的代码库实施一些单元测试。NUnit 可以用非托管代码破解它吗?有更好的选择吗?
visual-studio-2008 - 动态链接托管 C++ 类库中的非托管 dll
我通过试验 n 错误弄清楚了如何将非托管静态库链接到托管 C++ dll,但我不知道如何动态包含 DLL。有谁知道如何在 Visual Studio 2008 中执行此操作?
c++ - 将 dll 引用添加到托管 c++ 项目时出现编译器错误
我正在使用 VS 2008 并且在我的 C++ 项目中添加对托管 c++ 文件的 dll 引用时偶尔会出现编译器错误。我正在尝试添加对 dll 的引用,以便能够使用智能指针。 例如:#import items.tlb
问题是编译器在items.tlh内的零星地方崩溃,几乎就像删除了缺失的字节块一样,但是当我打开文件时,我找不到对上述错误的任何引用。
我多次尝试重建整个项目,在不同的机器上尝试过,但是虽然编译器错误不一致并且有时会一起消失,但重新重建有时会带来问题。有人告诉我,生成的.tlh文件的大小可能是一个原因,但它并不能真正解决我的问题或为我指明正确的方向。
有没有人经历过同样的症状?谢谢
.net - .NET 中的二进制数据?(C++/CLI)
在 .NET 中存储二进制数据的首选方式是什么?
我试过这个:
并得到这个错误:
有没有办法管理字节数组?
c++-cli - 订阅事件的 C++/CLI 语法是什么?
我正在更新一些旧的托管 C++ 代码,如下所示:
在哪里
- EventSource是发布事件的类
- instanceOfEventSource是该类的一个实例
- EventSource::MyEventHandlerDelegate是事件的委托类型
- MyEventHandlerMethod是当前类(其中“this”是一个实例)中的(非静态)方法,其签名匹配 EventSource::MyEventHandlerDelegate
在 C++/CLI 中正确的语法是什么?
visual-c++ - 您可以从非托管 C++ 类派生托管 C++ 类吗?
我有一个未管理的 C++ 类,我用未管理的 dll 编写。我有一个引用非托管 dll 的托管 dll。托管 dll 中的类可以派生自非托管类吗?
使用 Visual Studio 2008
c++ - 内存分配
我的 STRUCT1 结构声明如下
STRUCT2 也是 STRUCT1 内部的另一个结构
然后我有一个指向它的指针,如下所示
我必须根据 nbrRequested 为 STRUCT1 数组分配内存到目前为止我有
但如果 nbrRequested 大于 500,则循环进入无限状态并且应用程序挂起。
有没有更好的方法来分配内存而不使用 for 循环
.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 - 似乎没有独特的反射特性。
按此顺序解析可能是合理的:
- 如果它具有 FSharpInterfaceDataVersionAttribute,则为 F#
- 如果它在我发现的大量额外类型中有任何一个,那就是 C++。
- 如果它具有“My*”类型,则它是 VB。
- 如果它具有 AssemblyConfigurationAttribute 或 GuidAttribute,则为 C#
- 很可能是 C++ /clr:Safe
然而,由于这是一个可怕的 hack,我想在这里检查以确保没有其他选项可用。
version - 托管 C++:如何让我的非托管版本号与我的程序集版本号匹配
我有一个托管的 c++ 项目。
如何使 DLL 的版本信息(在资源管理器中看到并由安装程序使用)与 Assembly Version 属性中生成的版本信息匹配?
装配信息.cpp:
这个问题在这里讨论。