这行代码应该怎么写才能编译通过
MoveMemory(poleFileDescriptorW
, (oleDataPointer + SizeOf(oleFileDescriptorW) *Index + 4)^
, SizeOf(oleFileDescriptorW));
特别是这部分
(oleDataPointer + SizeOf(oleFileDescriptorW)*Index + 4)^
我只想将指针移动 SizeOf(oleFileDescriptorW)*Index + 4
字节
变量定义为:
pOLEFileDescriptorW : ^FILEDESCRIPTORW;
oleDataPointer : Pointer;
最佳答案
转换为整数类型,进行数学计算并转换回来。
我通常使用 Cardinal
,但我认为这不适用于 64 位编译器。
指针(NativeInt(oleDataPointer) + SizeOf(oleFileDescriptorW)*Index + 4)
关于Delphi指针算术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4303880/