我将如何缩短内存地址以便它在 IntPtr 中工作?
How would I shorten a memory address so it works in a IntPtr?
我有问题。所以我正在开发一个能够更改内存中的浮点数的应用程序,但我拥有的地址对于 IntPtr 来说太长了。
这是我的代码:
VAMemory vam = new VAMemory("APP NAME");
IntPtr ad = 0x264A373E7C0;
vam.WriteByte(ad, (Byte)100);
所以在这个 ^ WriteByte 中它说 IntPtr 地址太长。
我以前使用过此代码并且它有效但不知何故它不适用于此地址。
如果 IntPtr.Size == 4
那么您的程序的目标是 32 位。
即使您选择了 AnyCPU
体系结构,自 VS2013 以来,有一个名为 Prefer 32-bit
的项目构建 属性 并且必须在 64bit[ 上关闭它=40=]台机器得到IntPtr.Size == 8
.
当使用AnyCPU
的Perfer 32-Bit
风格时,语义如下:
- 如果进程在32位Windows系统上运行,它作为32位进程运行。 IL 被编译为 x86 机器代码。
- 如果进程在 64 位 Windows 系统上运行,它将作为 32 位 进程运行。 IL 被编译为 x86 机器代码。
- 如果进程在 ARM Windows 系统上运行,它将作为 32 位 进程运行。 IL 被编译为 ARM 机器代码。
我有问题。所以我正在开发一个能够更改内存中的浮点数的应用程序,但我拥有的地址对于 IntPtr 来说太长了。
这是我的代码:
VAMemory vam = new VAMemory("APP NAME");
IntPtr ad = 0x264A373E7C0;
vam.WriteByte(ad, (Byte)100);
所以在这个 ^ WriteByte 中它说 IntPtr 地址太长。 我以前使用过此代码并且它有效但不知何故它不适用于此地址。
如果 IntPtr.Size == 4
那么您的程序的目标是 32 位。
即使您选择了 AnyCPU
体系结构,自 VS2013 以来,有一个名为 Prefer 32-bit
的项目构建 属性 并且必须在 64bit[ 上关闭它=40=]台机器得到IntPtr.Size == 8
.
当使用AnyCPU
的Perfer 32-Bit
风格时,语义如下:
- 如果进程在32位Windows系统上运行,它作为32位进程运行。 IL 被编译为 x86 机器代码。
- 如果进程在 64 位 Windows 系统上运行,它将作为 32 位 进程运行。 IL 被编译为 x86 机器代码。
- 如果进程在 ARM Windows 系统上运行,它将作为 32 位 进程运行。 IL 被编译为 ARM 机器代码。