- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
有人可以向我解释以下参数异常:结构不能是值类吗?这是由我程序中的以下代码行引起的:
Marshal.PtrToStructure(m.LParam, dbh);
假设 dbh
是以下类型:
[StructLayout(LayoutKind.Sequential)]
public struct Device_Broadcast_Header
{
public int dbch_size;
public int dbch_devicetype;
public int dbch_reserved;
}
谢谢
最佳答案
你不能调用这个特定的 Marshal.PtrToStructure
用值类型重载(即 struct
)。
如果您调用 this overload您可以收到您的类型的实例。
关于c# - PtrToStructure 抛出的参数异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1195685/
我的计算机中有一 block 硬件...共享内存。我用返回指向此共享内存的指针的 .dll 调用它。一旦返回指针,旧的 C++ 程序就会写入和读取映射到该指针的结构。 现在我想制作一个新的 C# 程序
有人可以向我解释以下参数异常:结构不能是值类吗?这是由我程序中的以下代码行引起的: Marshal.PtrToStructure(m.LParam, dbh); 假设 dbh 是以下类型: [Stru
谁能看出它失败的原因?如果我用“ref BITMAP lpvObject”替换“out IntPtr lpvObject”,我可以让它以这种方式工作。但我看不出代码有什么问题。 using Syste
在 C++ 中,我有这个: struct BasePacketProto { unsigned short PACKET_OPCODE; unsigned short PACKET_M
我有这个结构: [StructLayout(LayoutKind.Sequential)] public struct IS { public UInt32 ID;
在我的程序 (C#) 中,我使用方法 Marshal.PtrToStructure 将对象转换为在循环中将内存地址添加到结构。在第一个元素,这个工作正常。但是在第二个元素处,发生了访问冲突异常。 ac
我有一个系统,其中远程代理发送序列化结构(来自嵌入式 C 系统)供我通过 IP/UDP 读取和存储。在某些情况下,我需要发回相同的结构类型。我认为我使用 Marshal.PtrToStructure(
在 64 位中运行时,我的单元测试在这段代码上崩溃。 崩溃发生在循环第二次迭代的 Marshal.PtrToStructure 调用上。 “entriesRead”显示为 4,因此它应该能够正确读取,
我正试图对我公司的一堆遗留二进制数据进行逆向工程,以便我可以将其转换为更持久的格式。我们用于创建此数据的应用程序不再受支持。 我发现我可以在一系列结构中描述数据,并且我已经能够使用 Marshal.P
JNA 中 .NET 的 Marshal.PtrToStructure 有什么等价物? 我正在尝试用 Java 编写一个 Firefox 密码解密器,并且正在查看 C# 的等效项,我已经完成了其中的大
我正在尝试将 byte[] 转换为包含数组的结构,该结构包含数组。 像这样: [StructLayout(LayoutKind.Sequential, Pack = 4)] public struct
我通过调用 Marshal.PtrToStructure(intPtr, typeof(Servent)) 得到一个 AccessViolationExcpetion。任何想法我做错了什么?我在 x6
我正在使用 unity3d 开发一个游戏项目。 现在我正在尝试统一将结构从 C++ 传递到 C#。 C++ 中的结构如下所示: #pragma pack(push) #pragma pack(1) c
我正在尝试从键盘 Hook 的 lParam 获取 KBDLLHOOKSTRUCT。 private static IntPtr HookCallback(int nCode, IntPtr
我有这个 C++ 代码: extern "C" __declspec(dllexport) VOID AllocateFoo(MY_DATA_STRUCTURE** foo) { *foo =
我在使用 Marshal.PtrToStructure() 从指向 DEVMODE 类型结构的指针中提取数据时遇到问题。 Here是指向 DEVMODE 结构上的 MSDN 条目的链接。 我对该结构的
我有一个使用 PInvoke 在 C# 和 C++ 之间编码数据的应用程序。该应用程序是一个本地 C++ 应用程序,它在内部使用 C# 部分启动 CLR。 有时我必须将数据从 C++ 编码到 C#
我正在尝试使用现有代码将包含 std::bitsets 的 C++ 结构映射到它的 C# 版本。 我的代码在这些简单的对象上工作得很好: // C++ struct struct log_t {
我们在尝试 PInvoke read() 时遇到奇怪的行为linux/libc 与 Mono 的方法。 [16:05:17.258][UNHANDLED EXCEPTION][BEGIN][16:05
我是一名优秀的程序员,十分优秀!