c# - 向 IntPtr 添加偏移量

标签 c# .net pinvoke interop

我正在寻找一种在 C# 或 .NET 中执行指针操作的方法。

我想做一些很简单的事情

有一个 IntPtr 指针,我想获得指向前面 2 个字节的 IntPtr 对象。

我读了一些帖子说这个愚蠢的代码片段会起作用......

IntPtr ptr = new IntPtr(oldptr.ToInt32() + 2);

但我怀疑这个声明是否也适用于 64 位机器(因为那里的寻址是 64 位的)..

我发现了这种添加偏移量的优雅方法,但不幸的是仅在 .NET 4.0 中可用 http://msdn.microsoft.com/en-us/library/system.intptr.add%28VS.100%29.aspx

最佳答案

在 .net 4 中添加了静态 Add() 和 Subtract() 方法。

IntPtr ptr = IntPtr.Add(oldPtr, 2);

http://msdn.microsoft.com/en-us/library/system.intptr.add.aspx

关于c# - 向 IntPtr 添加偏移量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1866236/

相关文章:

c# - 在 WPF 中刷新 ListBox 的简单方法?

c# - 为什么我无法访问通过 POST 请求以编程方式添加的静态文件?

c# - 在 .NET 4.0 中使用 Web 服务时出现连接错误

c# - 具有基类和不同实现配置选项的自动映射器

c# - 如何将可空类型传递给 P/调用函数

c# - 如何使用 Petapoco 将自动增量 ID 设置为另一列

c# - LINQ 选择使用 .split()

C# 从 MySQL 中的表填充 Visual Studio 2015 中的 dataTable

c# - 如何将 .NET 位图传递给 native DLL?

c# - 如何将结构编码为指向结构的指针?