c#的Marshal
补充过程中~ 感觉应该是C#调用非托管的比较专门的class 例1、 public struct ImageDataMsg { public char DataType; public int Srv_index; public char ConvertType; //这个个地方要指定长度,这样就可以的德奥结构体的正确长度了 [MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)] public int[] VecLayer;//需要那几个图层。 [MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)] public int[] GridLayer;//需要那几个栅格图层 public int Scale_index;//需要的是那个比例尺的图像 public int x_pos; public int y_pos; public int ClientArea_x; public int ClientArea_y; } //使用这个方法将你的结构体转化为bytes数组 public static byte[] Struct2Bytes(ImageDataMsg obj) { int size = Marshal.SizeOf(obj); byte[] bytes = new byte[size]; try { IntPtr ptr = Marshal.AllocHGlobal(size); Marshal.StructureToPtr(obj, ptr, false); Marshal.Copy(ptr, bytes, 0, size); Marshal.FreeHGlobal(ptr); return bytes; } catch (Exception ee) { MessageBox.Show(ee.Message); return bytes; } } //使用这个方法将byte数组转化为结构体 public static object BytesToStuct2(byte[] bytes, ImageDataMsg type) { //得到结构体的大小 int size = Marshal.SizeOf(type); //byte数组长度小于结构体的大小 if (size > bytes.Length) { //返回空 return null; } //分配结构体大小的内存空间 IntPtr structPtr = Marshal.AllocHGlobal(size); //将byte数组拷到分配好的内存空间 Marshal.Copy(bytes, 0, structPtr, size); //将内存空间转换为目标结构体 object obj = Marshal.PtrToStructure(structPtr, typeof(ImageDataMsg)); //释放内存空间 Marshal.FreeHGlobal(structPtr); //返回结构体 return obj; }
Rust编程语言群 1036955113
java新手自学群 626070845
java/springboot/hadoop/JVM 群 4915800
Hadoop/mongodb(搭建/开发/运维)Q群481975850
GOLang Q1群:6848027
GOLang Q2群:450509103
GOLang Q3群:436173132
GOLang Q4群:141984758
GOLang Q5群:215535604
C/C++/QT群 1414577
单片机嵌入式/电子电路入门群群 306312845
MUD/LIB/交流群 391486684
Electron/koa/Nodejs/express 214737701
大前端群vue/js/ts 165150391
操作系统研发群:15375777
汇编/辅助/破解新手群:755783453
大数据 elasticsearch 群 481975850
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
java新手自学群 626070845
java/springboot/hadoop/JVM 群 4915800
Hadoop/mongodb(搭建/开发/运维)Q群481975850
GOLang Q1群:6848027
GOLang Q2群:450509103
GOLang Q3群:436173132
GOLang Q4群:141984758
GOLang Q5群:215535604
C/C++/QT群 1414577
单片机嵌入式/电子电路入门群群 306312845
MUD/LIB/交流群 391486684
Electron/koa/Nodejs/express 214737701
大前端群vue/js/ts 165150391
操作系统研发群:15375777
汇编/辅助/破解新手群:755783453
大数据 elasticsearch 群 481975850
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。