当前位置: 首页 > 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.zqtcl.cn/news/765075/

相关文章:

  • 商务网站建设策划思路平台网站如何做推广方案设计
  • 哈尔滨网站快速排名通辽网站建设
  • 雄安专业网站建设哪家好分销系统网站建设
  • 咨询行业网站开发wordpress5.0新版如何发布文章
  • 做网站要什么技术saas建站和开源建站的区别
  • 大型网站建设哪家服务好qq对话制作器app
  • 做免费小说网站怎样赚钱网络推广方案最新
  • 电商网站的建设与运营揭阳专业的网站建设价格
  • 网站策划书包括哪些内容百度官方营销推广平台有哪些
  • 成都企业网站seo重庆企业网站推广费用
  • 广东电白建设集团有限公司网站wordpress 静态地址
  • 微网站和手机站区别工业设计专业学什么
  • 兰州网站建设哪里好素材图片高清
  • 公司网站建设进度设计官网登录入口
  • 中牟高端网站建设wordpress可视化文章
  • 那家公司做网站广西网络营销外包公司
  • 成品网站速成网站知名网站建设加盟合作
  • 零基础学pytho 网站开发Drupal对比WordPress
  • 网站开发 例子快影
  • 宁津建设局网站推介网站
  • c 是用来做网站的吗中国营销策划网
  • 在建设部网站首页莒县网页设计
  • 河北省城乡和住房建设厅网站网店代运营托管
  • 彩票网站建设wordpress判断用户权限
  • 简洁大气企业网站源码h5商城网站建设是什么
  • 河间做网站价格wordpress评论导出
  • 网站关键词布局图网站推广与宣传怎么做
  • 小说类网站程序西安移动网站建设
  • 贵州高端网站建设网站做好了怎么做后台
  • 网站建设与管理 答案国外做免费的视频网站有哪些