问题标签 [marshalling]

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 回答
3415 浏览

c# - C#:指向结构内部结构的指针

我正在尝试在 C# 中使用编组。在 C++ 中,我有一个这样的结构:

因此,C# 等价是:

但是这个结构上的很多都是管理的(aiNode、aiMesh、aiLight)等。所以,我有这个错误:

无法获取托管类型 ('Assimp.aiNode') 的地址、大小或声明指向托管类型的指针

关于如何解决这个问题的任何想法?

0 投票
2 回答
1677 浏览

c# - 如何将递归结构编组为 c 锐利?

我有一个非托管结构,我想编组为 c sharp,它看起来基本上像这样:

我相信我必须编写一个自定义编组器,但我不确定如何进行。

0 投票
5 回答
5171 浏览

c# - 如何抑制在 .NET 项目中使用 COM 引用产生的编译器警告

我们正在使用 Windows COM+ 服务类型库(位于 C:\Windows\system32\COMSVCS.dll)来跟踪远程计算机上的 COM+ 进程,该服务使用 C# 3.0/.NET 3.5 编写的服务。我遇到的问题是,我从编译器收到一大堆警告,如下所示:

运行时封送处理程序不能封送“IGetAppData.GetApps”的至少一个参数。因此,此类参数将作为指针传递,并且可能需要不安全的代码来操作。

为上述方法生成的互操作函数签名是:

由于输出已经在调用代码中手动编组(即使用Marshall.ReadInt32and Marshall.PtrToStructure),有没有办法抑制这些类型的警告?

0 投票
2 回答
2098 浏览

c - 启用在 VB.net 代码中调用 C dll

我遇到了一个问题,我在我的 VB.net 代码中使用了 C Dll。我有 .H 文件,它显示了 C 语言中这个 DLL 的实现。此 .H 文件包含许多结构和联合,其中包含某些结构类型的变量。有一个包含指向这些结构和联合的指针的主结构,最后将主结构的地址传递给 dll 函数。

我能够弄清楚如何在 vb.net 中使用编组创建结构和联合,以及如何传递包含其他结构和联合地址的结构的地址。

请我解决这个问题。任何帮助,将不胜感激。

谢谢,瑜伽士

0 投票
1 回答
3557 浏览

vb.net - VB.net 编组错误

我必须在 VB.net 中创建一个结构类型的数组。但我在编组此错误时遇到错误。我必须将这个结构类型数组传递给 Dll 函数。

代码:结构声明:

初始化和编组代码:

我收到以下错误:

附加信息:类型 dx_entry[] 不能被编组为非托管结构;无法计算出有意义的大小或偏移量。

0 投票
2 回答
1358 浏览

c# - 如何使用 Marshal.SizeOf 忽略结构中的字段大小?

有没有办法忽略使用 Marshal.SizeOf 计算的结构大小中的字段

前任:

现在尺寸是 4。我希望尺寸是 2。有没有办法做到这一点?

0 投票
2 回答
3291 浏览

c# - 在 C++ 和 C# 之间编组类实例的指针

我有一个 ActiveX 控件(用 C++ 编写)并从 C# 项目中引用它的 RCW 程序集(由 aximp.exe 创建)。

在实现 Ax 控件的 C++ 代码中,我有一个实现接口的类,该接口作为 Ax 控件的属性公开。

查看生成的 RCW 程序集,我看到了界面。我可以尝试声明其类型的变量。

现在,如果我只有一个指向在内存中实现接口的 C++ 类实例的指针,是否可以使用该指针将其数据编组到表示接口的托管 C# 对象中?

请注意,它不是接口指针。它是指向我拥有的类的实例的指针。

0 投票
7 回答
738 浏览

c# - 编组问题

我有一个与读卡器交互的 C++ DLL。它需要一个指向数据结构的指针,这不是问题。但是,当尝试与 C# 中的 DLL 交互时,我遇到了各种问题。写入受保护内存的错误,执行 getData 命令后应用程序刚刚关闭等。这就是我们所拥有的。

标头中的 C++ 方法

C# 代码

form1.cs

我还尝试使用 Marshal.StructureToPtr 将 cardData 作为 IntPtr 传递,当我返回时它没有返回任何数据尝试将 ptr 读入结构 Marshal.PtrToStructure ...

我一直在尝试使用帮助文件和其他帖子来解决这个问题,因为似乎很多人在尝试使用 C/C++ DLL 时遇到了麻烦。我什至尝试用 C++ 编写整个内容,并让它返回一个字符串,其中包含在 C++ DLL 中解析的数据,但这会引发读取/写入受保护内存错误

0 投票
3 回答
5437 浏览

c# - PtrToStructure 引发的参数异常

有人可以解释以下参数异常:结构对我来说不能是价值类。这是由我的程序中的以下代码行引起的:

鉴于它dbh的类型:

谢谢

0 投票
1 回答
5942 浏览

c# - 如何编组可变大小的结构数组?C# 和 C++ 互操作帮助

我有以下 C++ 结构

和一个 C++ 函数

如何将其编组为 C#?C# 定义在哪里