cli/C++ 如何使用非托管类型元素定义 cli::array?

2024-01-23

我有一个本机 C/C++ 结构

typedef struct
{
...
} AStruct;

在 C++/CLI 代码中,我定义了一个委托和一个 cli 数组,如下所示

public delegate void UpdateDataDelegate(AStruct% aSt,AStruct% bSt);

cli::Array<AStruct>^ args=gcnew cli::Array<AStruct>(2); // complile failed!!!!。

this->Invoke(updateData,args);

AStruct有很多字段并且被很多模块使用,所以如果我不喜欢为它编写一个管理包装AStruct,如何使上面的代码有效?

非常感谢


托管数组的元素类型必须是托管类型。一种解决方法是存储指针:

array<AStruct*>^ args=gcnew array<AStruct*>(2);
args[0] = new AStruct;
// etc...

UpdateDataDelegate^ dlg = gcnew UpdateDataDelegate(Mumble);
dlg->Invoke(*args[0], *args[1]);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

cli/C++ 如何使用非托管类型元素定义 cli::array? 的相关文章

  • 将 C++/CLI 与 NUnit 结合使用的限制

    这个答案 https stackoverflow com questions 13699 choosing a c unit testing toolframework 13897关于 C 单元测试框架的问题提出了一种我以前没有想到的可能性
  • 嵌入式非托管 DLL 无法在 ASP.NET 中加载

    我正在为 WCF 服务开发 ASP NET 主机 该服务引用 C CLI 包装器库 该库本身引用非托管 DLL 基于这个问题 https stackoverflow com questions 2907169 asp net load un
  • 在 C++/CLI 包装类中翻译异常的最佳实践

    我正在为抛出异常的现有本机类编写 NET 包装类 在本机 C 异常和托管异常之间进行转换的最佳实践是什么 一对一地捕获并重新抛出 例如 std invalid argument gt System System ArgumentExcept
  • 为什么我的 UDP 广播失败?

    我正在尝试发送 UDP 广播 但wireshark 没有报告任何流量 这是执行发送的代码片段 void SendBroadcast String ip 255 255 255 255 int port 30718 String messag
  • 托管 C++/CLI 类中的 auto_ptr 或 shared_ptr 等效项

    在 C CLI 中 您可以在托管类中使用本机类型 因为不允许在托管类中保存本机类的成员 在这种情况下您需要使用指针 这是一个例子 class NativeClass public ref class ManagedClass private
  • 在 C++ 声明中使用 ^ 字符意味着什么? [复制]

    这个问题在这里已经有答案了 可能的重复 C CLI 中插入符号 是什么意思 https stackoverflow com questions 202463 what does the caret mean in c cli 在 C CLR
  • 将 CLR 类型转换为 void* 并返回

    例如 如何正确转换 CLR 类型Foo to void 过一段时间再回来 场景是 我在 DLL 中有一些非托管代码 可以总结为 class Handler void obj void call void obj int detail voi
  • 从 C++ 托管 dll 引发的 C# 异常 - EEFileLoadException * __ptr64

    我从正常的 C 控制台程序中收到此错误 该程序使用作为 C CLI 项目的构建输出生成的 DLL 那里我有一个简单的DumbThing public ref class用静态方法 我想简单地调用该函数 或者至少实例化一个微小的 DumbTh
  • 将 std::vector 转换为 .NET List 的最有效方法是什么?

    将 std vector 转换为 NET 列表的最有效方法是什么 为了提供一些背景信息 我使用 C CLI 包装了一个非托管 C 类 C CLI 类保存一个指向 C 类的指针 并且我为每个公共方法都有一个包装器 一种方法返回 std vec
  • 如何在 C++/CLI 中转发声明委托?

    How 以下内容无效 delegate MyDelegate ref class MyDelegate delegate void MyDelegate 申报工作如下 public delegate void MyDelegate Obje
  • 在 C++/CLI 中使用 EventHandler

    我正在尝试使用 c cli 中的事件处理程序来引发事件 然后在 c 中订阅它 class Mclass event System EventHandler someEvent void ShowMessage System String s
  • VC++ 代码 DOM 可以从 VS 插件访问吗?

    Visual Studio IntelliSense for VC 包括 完整 EDG C 解析器 http www edg com location c frontend 英特尔和其他公司也使用 由于插件可以访问 C Code DOM 如
  • 在 Visual Studio C++ 2008 中包含 dll

    有没有办法将 dll 包含在项目中 这样我就不必在编译后将这些 dll 与可执行文件放在同一文件夹中 这样我就可以用它们编译我的项目 这是否有可能 如果是 有人可以指导我 我的项目是一个 opencv 项目 有很多 dll 我必须包含在文件
  • C++ 到 C# 事件处理

    所以我有我的C WinForm 应用程序 我从中调用我的C CLI MFC dll图书馆 但也有一些events在我的 C 库上 甚至此事件也发生在该库的本机 非 CLI 部分 我需要从我的 C 应用程序调用一些代码 并获取一些有关此事件的
  • Visual Studio C++/CLI 2010 的 Intellisense 不起作用;还有其他选择吗? [复制]

    这个问题在这里已经有答案了 可能的重复 人们用什么替换 VS 2010 中缺失的 C CLI Intellisense https stackoverflow com questions 3197034 what are people re
  • 使用命名空间

    有什么区别 using System and using namespace System 是同一件事吗 thanks 是的 有区别 第一个无法编译 也许你的意思是这样的 using
  • 删除数组时出现访问冲突异常

    删除分配的内存时 出现 访问冲突读取位置 异常 如下所示 我有一个针对 Visual Studio 2010 工具集 v100 C 编译器编译的本机 dll 我有一个针对它的托管 dll 包装器 它是针对工具集 v90 编译的 因为我想以
  • c++/cli 终结器中免费 GCHandle 的最佳实践

    我在 c 中有一些函数 我会在 net 应用程序中使用它 为此 我用 C cli 编写了一个包装器类 C 接口中有一个回调函数 并将其包装在 net 委托中 但是我应该如何释放回调 gcHandle 的非托管资源呢 是否允许在终结器中从 G
  • 在 C++/CLI 中实现 IEnumerable

    我在实施时遇到问题IEnumerable
  • 链接 C++ 和 C++/CLI 项目 (.NET Core) 时导入错误 (E0337)

    我目前正在尝试建立一个 NET 项目 我有一个现有的 C 后台项目 我想将其显示在 Web 界面上 为此 我尝试通过以下方式将我的 C 链接到 NET 平台 CLR 类库 NET Core 并最终将其链接到ASP NET 网络界面但这是下一

随机推荐

  • 以编程方式更改应用程序的AppPool

    我需要更改某个网站下所有 选定应用程序的应用程序池 我的 IIS 上有所有网站和应用程序池 但我无法更改它们 有任何想法吗 这是我到目前为止所做的 这对我来说看起来很奇怪 因为只有字符串改变 而不是对象 private void Chang
  • 将 Google Closure 模板与 jQuery 结合使用

    我们开始使用 JavaScript 和 HTML5 创建一个应用程序 该应用程序将使用 REST API 来访问服务器资源 利用我们的开发团队已经熟悉的 jQuery 的强大功能和易用性 该应用程序将成为多语言版本 后来我们决定使用 Jav
  • 为 SQL Server 组合“LIKE”和“IN”[重复]

    这个问题在这里已经有答案了 是否可以合并LIKE and IN在 SQL Server 查询中 所以 这个查询 SELECT FROM table WHERE column LIKE IN Text Link Hello World 查找以
  • 如何检查该行是否在每页的第一行?

    我有要打印的数据列表 我想知道是否有任何方法可以查找该行是否是 JasperReports 报告中每个页面的第一行 有一个内置变量名 V PAGE COUNT 第 COUNT页 内置变量 包含生成当前页面时处理的记录数 对于页面上的第一条记
  • git 克隆时远端意外挂断

    My git尝试克隆存储库一段时间后 客户端反复失败并出现以下错误 这里可能有什么问题 Note 我已向 GIT 托管提供商注册了 SSH 密钥 Receiving objects 13 1309 10065 796 00 KiB 6 Ki
  • 尝试使用 Azure SDK 2.5 进行发布会导致 null-ref(对象引用未设置为对象的实例)[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 We upgraded我们来自 SDK 2 4 的 Azure 部署项目至 SDK 2 5 该项目有两个工人角色 将 2 4 项目发布到云服
  • JUnit 测试私有变量? [复制]

    这个问题在这里已经有答案了 我被分配了对一个我从未直接使用 JUnit 进行过工作的类进行单元测试的任务 并且严格禁止更改包中的代码 这通常不是问题 因为我们的大多数单元测试只是为了功能和输入 输出一致性 这可以简单地通过运行例程并检查其返
  • 使用 Lucene SearchAfter 示例

    我正在尝试使用 Lucene 4 8 1 的 SearchAfter 方法在 Web 应用程序中实现搜索结果分页 以前曾问过类似的问题 但那里给出的接受的答案对我不起作用 Stack Overflow问题 Lucene网页分页 https
  • Android 将多个号码传递给短信意图

    我从联系人中获取不同的号码并将它们传递到短信应用程序 我正在使用以下内容 Intent intent new Intent Intent ACTION VIEW Uri parse sms numbers numbers separated
  • 如何在单元测试中模拟依赖注入对象

    我的项目需要单元测试 我在控制器中使用构造函数依赖注入 当我在单元测试项目中模拟注入的依赖项对象并在测试方法中调用它时 在所有情况下都返回 null 控制器类 public class Owner Controller private re
  • 有没有办法使用命令行从 VS 的解决方案中排除项目?

    我有一个包含 10 个项目的解决方案 并且希望在构建解决方案时排除 1 或 2 个项目 问题是我正在命令行中构建解决方案 并希望部分运行它一次 不是所有项目 下次它应该按原样运行 所有项目都将构建 我正在使用 MSBuild exe 你们中
  • 在 WordPress 安装中强制使用非 www 网址会导致无限循环

    我正在尝试重写http www 域名 http www domain to http 域名 http domain在 WordPress 安装中 但看起来它正在使 url 循环http www http www到 http 并返回到http
  • 32 - 如何克服 Android 中凭据的 Wi-Fi Direct 32 限制?

    参见 gt https android googlesource com platform frameworks base b267554 wifi java android net wifi p2p WifiP2pGroupList ja
  • 如何删除列表中的重复值(坐标)[重复]

    这个问题在这里已经有答案了 我想问一下如何删除此类列表中的重复项 ppoint 1 2 1 2 3 4 5 6 7 3 3 4 5 6 我尝试了 set 但仍然出现错误 unhashable list ppoint 1 2 1 2 3 4
  • python - While循环导致整个程序在Tkinter中崩溃

    我正在尝试运行 While 循环以便不断地做某事 目前 它所做的只是使我的程序崩溃 这是我的代码 import tkinter def a root tkinter Tk canvas tkinter Canvas root width 8
  • android getIntrinsicHeight 和 getIntrinsicWidth 是什么意思?

    嗨 我对 Android Drawable 类的两种方法感到困惑 getIntrinsicHeight getIntrinsicWidth API定义说http developer android com reference android
  • 如何定位 CSS 网格布局中的特定列或行?

    是否可以使用 CSS 选择特定的网格列或行 例如 假设我有一个 3 行 x 2 列的 CSS 网格布局 grid template rows 1fr 1fr 1fr grid template columns 1fr 1fr 我如何从第二列
  • Mysql UTF8 编码问题 - “字符串值不正确”

    我正在使用 Mysql 5 5 27 和 Net 连接器 6 5 4 当我尝试插入一些数据时 出现以下错误 Incorrect string value xF3 xB6 xA5 x89f for column STACK TRACE at
  • 使用输入参数作为可选输入

    使用 wso2 DSS 版本 3 01 我试图有一个可以是可选参数的输入参数 用户可以说 给我这个特定代码的所有信息 或者如果用户没有指定任何代码 我想提供所有数据行 你能帮我吗 您还可以执行以下操作 而不是为每个可选参数创建查询
  • cli/C++ 如何使用非托管类型元素定义 cli::array?

    我有一个本机 C C 结构 typedef struct AStruct 在 C CLI 代码中 我定义了一个委托和一个 cli 数组 如下所示 public delegate void UpdateDataDelegate AStruct