当前位置: 首页 > news >正文

app 网站wordpress selva

app 网站,wordpress selva,浏览器打开用dw做的网站说,电子政务网站建设实践报告C# 中的 IntPtr IntPtr 是 C# 中用于表示指针或句柄的结构#xff0c;它在处理非托管代码、与 Windows API 交互或管理非托管资源时非常有用。IntPtr 是一个平台无关的类型#xff0c;能够在 32 位和 64 位系统之间自适应#xff0c;通常用于存储指针地址或句柄。 特点 平…C# 中的 IntPtr IntPtr 是 C# 中用于表示指针或句柄的结构它在处理非托管代码、与 Windows API 交互或管理非托管资源时非常有用。IntPtr 是一个平台无关的类型能够在 32 位和 64 位系统之间自适应通常用于存储指针地址或句柄。 特点 平台无关性IntPtr 在 32 位和 64 位应用程序中能够适应不同的指针大小。操作提供了多种方法和运算符用于处理指针运算如加减法等。内存管理常与 Marshal 类一起使用用于处理非托管内存的分配和释放。 示例 1: C# 创建 IntPtr 并释放 1. C 代码 首先创建一个简单的 C 动态链接库DLL。以下是一个名为 MyLibrary.cpp 的 C 文件 // MyLibrary.cpp extern C {__declspec(dllexport) void SetValue(int* ptr, int value) {if (ptr) {*ptr value; // 设置值}}__declspec(dllexport) int GetValue(int* ptr) {if (ptr) {return *ptr; // 获取值}return 0; // 指针为空返回 0} }编译上面的 C 代码为动态链接库 MyLibrary.dll。 2. C# 代码 接下来在 C# 项目中调用上面的 C 函数。以下是示例代码 using System; using System.Runtime.InteropServices;class Program {// 导入 C 函数[DllImport(MyLibrary.dll, CallingConvention CallingConvention.Cdecl)]public static extern void SetValue(IntPtr ptr, int value);[DllImport(MyLibrary.dll, CallingConvention CallingConvention.Cdecl)]public static extern int GetValue(IntPtr ptr);static void Main(string[] args){// 分配内存IntPtr ptr Marshal.AllocHGlobal(sizeof(int));try{// 使用 C 函数设置值SetValue(ptr, 42);// 使用 C 函数获取值int value GetValue(ptr);Console.WriteLine($Value from C: {value});}finally{// 释放内存Marshal.FreeHGlobal(ptr);}} }Demo 2: C 创建 IntPtr 并释放 首先创建一个 C 动态链接库DLL在其中分配和释放内存。以下是 MyLibrary.cpp 的示例代码 // MyLibrary.cpp #include iostreamextern C {__declspec(dllexport) int* CreateIntPtr() {// 在 C 中创建并分配内存int* ptr new int(200); // 分配内存并初始化为 200return ptr; // 返回指针}__declspec(dllexport) void ReleaseIntPtr(int* ptr) {// 释放内存delete ptr;std::cout Memory released in C. std::endl;}__declspec(dllexport) int GetValue(int* ptr) {// 获取值return *ptr;} }C# 调用 C Demo 接下来我们在 C# 中调用 C 函数。以下是 C# 代码 using System; using System.Runtime.InteropServices;class Program {// 导入 C 函数[DllImport(MyLibrary.dll, CallingConvention CallingConvention.Cdecl)]public static extern IntPtr CreateIntPtr();[DllImport(MyLibrary.dll, CallingConvention CallingConvention.Cdecl)]public static extern void ReleaseIntPtr(IntPtr ptr);[DllImport(MyLibrary.dll, CallingConvention CallingConvention.Cdecl)]public static extern int GetValue(IntPtr ptr);static void Main(string[] args){// 调用 C 函数创建 IntPtrIntPtr ptr CreateIntPtr();// 从 C 中获取值int value GetValue(ptr);Console.WriteLine($Value from C: {value});// 调用 C 函数释放 IntPtrReleaseIntPtr(ptr);} }总结 这两个示例展示了如何在 C# 和 C 中分别创建和释放 IntPtr。在示例1中IntPtr 是在托管环境中创建并释放的而在示例2中IntPtr 是在非托管环境中创建并释放的。
http://www.pierceye.com/news/765075/

相关文章:

  • 关于网站制作的指标哪家公司网站做的比较好
  • 网站开发一般多少钱规划设计公司毛利
  • .net 网站地图高端网站建设 n磐石网络
  • 商丘网站建设价格无锡网站建设制作公司
  • 做装饰材料的网站dede英文网站
  • 长沙招聘网站哪个最好网站登录页面html模板
  • 网页创建网站做商城网站报价
  • 网网站建设公司网络整合营销
  • 广州本地门户网站wordpress视频格式
  • 做网站如何购买服务器自己做的网站注册用户无法收到激活邮箱的邮件
  • 商城网站系统建设中信建设有限责任公司 吴方旭
  • 辽阳市建设行业培训中心网站蒙文门户网站建设
  • 凡科建站官网入口wordpress个性首页
  • 上海信息技术做网站不连接wordpress安装
  • 高端网站开发培训免费企业黄页查询网站
  • 最新的网站开发技术全国新冠新增最新消息
  • 试玩app推广网站建设广州网站维护制作
  • 2018年网站设计公司阿里巴巴网官方网站
  • 英文网站常用字体icp备案的网站名称
  • 扬州恒通建设网站镇江润州区建设局网站
  • 关于网站制作的论文网站注册时间
  • 一个人可以备案几个网站做图去哪个网站找素材
  • 江苏建设管理信息网站自己可以做装修效果图的网站
  • html网站欣赏杭州战争网站建设
  • 乐清市做淘宝网站公司网站支付体现功能怎么做
  • 做网站公司促销海报本网站只做信息展示
  • 网站建设商城模板仿我喜欢网站源码免费
  • 工商服务网优化网站推广
  • 嘉兴网站系统总部做一个网站一般要多少钱
  • win10电脑做网站网站为什么有价值是