- 2024-09-07获取结构体成员中每个字段的偏移量
获取结构体成员中每个字段的偏移量使用Marshal.OffsetOf来查看结构体中每个字段的偏移量:usingSystem;usingSystem.Runtime.InteropServices;publicstructExampleStruct{publicbyteb;//1bytepublicshorts;//2bytespublicinti;//4bytes
- 2024-08-12【转】C# struct byte 互转
文章来源(侵联删):https://blog.csdn.net/shenaisi/article/details/104727187usingSystem;usingSystem.Collections.Generic;usingSystem.Runtime.InteropServices;namespacestruct_test{internalclassProgram{staticvoidMain(string[]args)
- 2024-07-10C#使用SendMessage进行进程间通讯
最近公司有个需求是,拖动文件到桌面图标上,自动打开文件。那么只需在OnStartup事件中通过StartupEventArgs获取文件名然后进行操作即可。操作之后发现当软件已经启动了(单例运行),那么将无法将参数传给业务层。原因是因为跨进程了,那么我们可以通过窗口句柄的方式来进行通讯。1publ
- 2024-06-15C#批量设置海康和大华录像机NVR,GB28181的通道编码.
我经常要把小区海康或者大华的硬盘录像机推送到自己搭建的gb28181监控平台,每次几百个摄像头编码,有点头大,就用了1个多周写了个批量设置海康和大华硬盘录像机的通道编码的程序,海康和大华的SDK简直不是人看的.太乱了.大华读取通道编码的代码///<summary>
- 2024-05-21二进制数组与基础类型转换
///<summary>///工具类:对象与二进制流间的转换///</summary>classByteConvertHelper{///<summary>///将对象转换为byte数组///</summary>///<paramname="obj">被转换对象</param>///
- 2024-03-15非托管内存简单使用
非托管内存将变量的值放到非托管内存通常用于优化性能和与外部非托管代码进行交互。非托管内存是直接由操作系统管理的内存,不受.NET运行时(CLR)的管理。性能优化:非托管内存访问速度更快,因为它不受.NET运行时的垃圾回收和类型检查等开销的影响。对于需要频繁访问大量数据的场景,
- 2024-02-15tcp ip socket seer agv 连接
Dotnet.Seer/SeerSocket.csusingSystem.Net;usingSystem.Net.Sockets;usingSystem.Runtime.InteropServices;namespaceSeer.SeerSocket;publicstructSeerMessageHead{publicbytesync;//0x5Apublicbyteversion;//0x01publicushortnumbe
- 2023-12-21如何在C#中将float[]快速的转换为byte[]
昨天喻兄抛出一个问题“如何在C#中将float[]快速的转换为byte[]”。于是开始了尝试。先写了下面的初始化代码usingSystem.Diagnostics;usingSystem.Runtime.InteropServices;Randomrandom=newRandom();//源数组varsrcArray=newfloat[500*1024*1024];//目的数
- 2023-12-20【代码块】-结构体序列化与反序列化
整理代码块代码块整理后存储,供后期使用结构体序列化与反序列化usingSystem;usingSystem.Runtime.InteropServices;usingSystem.Text;namespacestructTest{///<summary>///结构体序列化///</summary>publicclassstructSerializable{
- 2023-09-08.NET:使用 P/Invoke 调用 C# 中的 Win32 DLL——本质上和动态加载DLL没有区别
.NET:使用P/Invoke调用C#中的Win32DLL本质上和动态加载DLL没有区别!!!如下: 在.NET中执行非托管代码时,我们通常想要实现什么?假如是红队,一般想要运行原始的beaconpayload,在该payload中运行C#封装的本地代码。很长一段时间以来,最常见的做法是这样的:[DllImport("kernel32.dll"
- 2023-09-02c# socket tcp 通信 结构体 字节流 大端序列 小端序列
SeerAGV_2/SeerMessage.csusingSystem.Reflection;usingSystem.Runtime.InteropServices;namespaceSeerAGV{publicstructSeerMessageHead{publicbytesync;publicbyteversion;publicushortnumber;publicuintl
- 2023-08-17如何利用量化交易平台获取实时行情数据进行分析之代码分享
量化交易平台之行情数据获取方式续通过开放的方式提供全球股票(A股、港股、美股)、期货(国内期货、国际期货)等历史数据查询及实盘实时行情订阅平台特色:全球大多数行情一次购买即可享受全部数据行情订阅。历史数据可以提供下载服务方便使用云端自定义指数合成能力自定义品种的支持(如不
- 2023-05-31WPF中的密码框
WPF中的密码框XAML文件<PasswordBoxName="PasswordBox"Margin="5"Padding="5"PreviewKeyDown="Txtpassword_PreviewKeyUp"/> 后台代码:IntPtrp=System.Runtime.InteropServices.Marshal.SecureStringToBSTR(this.Password
- 2023-04-21动态库dll编写经验
流程(1)新建dll工程,空白工程即可(2)编写接口代码(3)添加def文件,用这个最省事def文件说明:LIBRARYgeos-functionEXPORTSisPointInPolygon_GFC#调用c++编写的动态库注意入口函数的大小写,用WinDbg工具查看[DllImport("geos-function.dll",EntryPoint="isPoint
- 2023-04-17C#在文件读写结构体 Marshal效率低
usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.IO;usingSystem.Runtime.InteropServices;name
- 2023-04-12c#中byte数组0x_(C#基础) byte[] 之初始化, 赋值,转换。
c#中byte数组0x_(C#基础)byte[]之初始化,赋值,转换。原文链接:https://blog.csdn.net/weixin_39862716/article/details/111506430byte[]之初始化赋值用forloop赋值当然是最基本的方法,不过在C#里面还有其他的便捷方法。1.创建一个长度为10的byte数组,并且其中每个byte的
- 2023-04-12托管与非托管转换-Marshal 类
Marshal是一个方法集合,主要应用在C#和非托管代码交互时,主要有如下方法:分配非托管内存复制非托管内存块将托管类型转换为非托管类型其他方法(与非托管代码交互时)常用方法IntPtrptr=xxxx;Datadata=newData();objectobj=data;ptr====>dataMarshal.
- 2023-03-26go语言学习-json和xml
JSONjson是完全独立于语言的文本格式,是k-v的形式name:zs应用场景:前后端交互,系统间数据交互json使用go语言内置的encoding/json标准库编码json使用json.Marshal()函数可以
- 2023-03-24如何提取 x64 程序那些易失的方法参数
一:背景1.讲故事最近经常遇到有朋友反馈,在x64环境下如何提取线程栈中的方法参数,熟悉x64调用协定的朋友应该知道,这种协定范围下,方法的前四个参数都是用寄存器传递的,比
- 2023-03-23C#结构体与byte数组相互转化
///<summary>///结构体转byte数组///</summary>///<paramname="structObj"></param>///<returns></returns>
- 2023-02-09『 再看.NET7』数值类型
在C#中,有int16,用short来定义;有int32,用int定义;用int64,用long来定义。在.NET7中,添加了int128,和unint128,位数更大的整型。vari16=short.MaxValue;Console.WriteLine
- 2023-02-09『 再看.NET7』数值类型
在C#中,有int16,用short来定义;有int32,用int定义;用int64,用long来定义。在.NET7中,添加了int128,和unint128,位数更大的整型。vari16=short.MaxValue;Console.WriteLine
- 2023-01-05C#中实现byte[]与任意对象互换(服务端通讯专用)
C++中,我们可以非常方便的将网络通讯接收来的char*缓冲区转成任意类型的结构体,并从中提取必要信息,只需要一个结构体类型指针的强制转换即可。但是在C#中,所有涉及到内存及指针
- 2022-12-17C#内存复制性能分析
staticclassProgram{[DllImport("kernel32.dll",EntryPoint="CopyMemory",SetLastError=false)]publicstaticexternvoidCopyMemo
- 2022-12-15C#调用C/C++动态库 封送结构体,结构体数组
因为公司一直都是做C++开发的,因客户需要要提供C#版本接口,研究了一下C#,发现其强大简洁,在跨语言调用方面封装的很彻底,提供了强大的API与之交互.这点比JNA方便多了.