marshalling相关内容

将 C# 锯齿状数组编组到 C++

我正在尝试将 2D C# 锯齿状数组 (double[][] jaggedArray) 编组到 C++ dll,其中我已将接收变量指定为 double**. 但是,我收到消息: 没有编组支持嵌套数组. 除了展平锯齿状数组之外,有没有办法在 C++ dll 中使用来自 C# 的锯齿状数组? 解决方案 使用低级 Marshal 类方法,可以将任何类型编组到非托管内存.例如,对 ..
发布时间:2021-12-25 16:16:00 C#/.NET

如何从 C# 将 const char* 传递给 C 函数?

我尝试从我的 C# 应用程序中的外部 DLL 调用一个普通的 C 函数.该函数定义为 void set_param(const char *data) 现在我在使用这个函数时遇到了一些问题: 如何在 C# 代码中指定这个“const"?public static extern void set_param(sbyte *data) 似乎错过了“const"部分. 如何在调用此函数时 ..
发布时间:2021-12-25 16:10:38 C#/.NET

在 c# 中封送 c 结构

我有一个可以将结构作为输入的“C"“DLL",我必须从我的 c# 程序中调用该 dll 休耕是我在 c 中的示例结构,我必须在我的 c# 代码中编组这些结构 我做得对还是错? 实际的 C 结构: typedef struct 过程{字符代码[8];}程序;typedef 结构日期字段{字符日期[10];}日期字段;类型定义结构 p45_clsgs{程序 p45_clsg;日期字 ..
发布时间:2021-12-23 17:24:33 C#/.NET

将 C++ struct 数组元组化为 C#

我在 C++ 中有以下结构: #define MAXCHARS 15类型定义结构{字符数据[MAXCHARS];int prob[MAXCHARS];} LPRData; 还有一个我正在调用的函数,用于获取包含 3 个这些结构的数组: void GetData(LPRData *data); 在 C++ 中,我会做这样的事情: LPRData *Results;结果 = (LPRData ..
发布时间:2021-12-23 16:54:22 C#/.NET

序列化和编组有什么区别?

我知道,就几种分布式技术(例如 RPC)而言,术语“编组"是最常见的.已使用但不明白它与序列化有何不同.它们不是都将对象转换为一系列位吗? 相关: 什么是序列化? 什么是对象编组? 解决方案 在远程过程调用的上下文中,编组和序列化松散是同义词,但在语义上有所不同. 特别是,编组是关于从这里到那里获取参数,而序列化是关于将结构化数据复制到或从原始形式(如字节流)复制. ..
发布时间:2021-12-21 22:12:06 其他开发

杰森<->适用于 GWT 的 Java 序列化

我正在寻找一个简单适用于 Java 的 Json(反)序列化程序,它可以与 GWT 一起使用.我用谷歌搜索了一下,发现了一些需要注释每个成员或定义无用接口的解决方案.挺无聊的.为什么我们没有像 这样非常简单的东西 class MyBean {...}new GoodSerializer().makeString(new MyBean());new GoodSerializer().makeOb ..
发布时间:2021-12-21 22:03:38 其他开发

将向量/数组从非托管 C++ 传递到 C#

我想将大约 100 - 10,000 点从非托管 C++ 传递到 C#. C++ 端看起来像这样: __declspec(dllexport) void detect_targets( char * , int ,/* 更多参数 */){std::vectorid_x_y_z;//现在将此向量传递给 C# 的最佳方法是什么} 现在我的 C# 端看起来像这样: 使用系统;使用 Syste ..
发布时间:2021-12-21 13:26:42 C#/.NET

C# - 如何将对象转换为 IntPtr 并返回?

我想将对象从托管代码传递到 WinApi 函数作为 IntPtr.它会将此对象作为 IntPtr 传递回托管代码中的回调函数.它不是结构,而是类的实例. 如何将 object 转换为 IntPtr 并返回? 解决方案 所以如果我想通过 WinApi 将列表传递给我的回调函数,我使用 GCHandle //对象到 IntPtr(在调用 WinApi 之前):列表list1 = new ..
发布时间:2021-12-18 00:06:01 C#/.NET

Go 中带有 JSON Marshal 的小写 JSON 键名

我希望使用 "encoding/json" 包来编组在我的应用程序的导入包之一中声明的结构. 例如: type T struct {富整数} 因为是导入的,所以结构体中所有可用(导出)的字段都以大写字母开头.但我希望有小写的键名: out, err := json.Marshal(&T{Foo: 42}) 将导致 {"Foo":42} 但我想得到 {"foo":42 ..
发布时间:2021-12-11 22:24:59 其他开发

将 Color32[] 数组快速复制到 byte[] 数组

将 Color32[] 值的array复制/转换到byte[]缓冲区?Color32 是来自 Unity 3D 的结构体,包含 4 个字节,分别为 R、G、B 和 A.我想要完成的是通过管道将渲染的图像从 unity 发送到另一个应用程序(Windows Forms).目前我正在使用此代码: private static byte[] Color32ArrayToByteArray(Color3 ..
发布时间:2021-12-11 17:01:49 C#/.NET

Marshal.PtrToStructure(并再次返回)和字节序交换的通用解决方案

我有一个系统,其中远程代理发送序列化结构(来自嵌入式 C 系统)供我通过 IP/UDP 读取和存储.在某些情况下,我需要发回相同的结构类型.我认为我使用 Marshal.PtrToStructure(接收)和 Marshal.StructureToPtr(发送)进行了很好的设置.但是,一个小问题是网络大端整数需要转换为我的 x86 小端格式才能在本地使用.当我再次发送它们时,大端是要走的路. ..
发布时间:2021-12-11 11:23:10 C#/.NET

从字节数组中读取 C# 中的 C/C++ 数据结构

从数据来自 C/C++ 结构的 byte[] 数组填充 C# 结构的最佳方法是什么?C 结构看起来像这样(我的 C 非常生疏): typedef OldStuff {字符名称[8];UInt32 用户;字符位置[8];UInt32 时间戳;UInt32 序列;字符跟踪[16];字符填料[12];} 并且会填充这样的内容: [StructLayout(LayoutKind.Explicit, ..
发布时间:2021-12-02 14:03:41 C#/.NET

json.Marshal(struct) 返回“{}";

type TestObject struct {种类字符串`json:“种类"`id 字符串 `json:"id, omitempty"`名称字符串`json:"name"`电子邮件字符串`json:"email"`}func TestCreateSingleItemResponse(t *testing.T) {测试对象:= 新(测试对象)testObject.kind = "测试对象"test ..
发布时间:2021-12-02 11:04:08 其他开发

你如何在 C++ 中序列化一个对象?

我有一个小的对象层次结构,我需要通过套接字连接序列化和传输这些对象.我需要序列化对象,然后根据它的类型反序列化它.在 C++ 中有没有一种简单的方法可以做到这一点(就像在 Java 中一样)? 是否有 C++ 序列化在线代码示例或教程? 编辑: 明确地说,我正在寻找将对象转换为字节数组,然后再转换回对象的方法.我可以处理套接字传输. 解决方案 谈序列化,boost 序列化 AP ..
发布时间:2021-12-01 15:48:11 C/C++开发