我用的是Delphi7,你能告诉我有没有或者可以在什么地方找到这样的程序: CopyMemory,但我可以从特定的字节数中复制内存。
我需要一些签名如下的东西:
procedure CopyMemory(Destination: Pointer; Source: Pointer; Length: DWORD; fromByte: Integer);我需要这个,因为我必须通过tcpip发送未发送的字节,这就是为什么我必须提取存储在内存中的未发送的字节的原因。
我已经看过源代码了,我需要重写一些asm部分。我已经很多年没有接触asm了,我更愿意用一些可靠的东西..
谢谢!
发布于 2011-06-28 18:12:29
procedure CopyMemory(Src, Dest: Pointer; Len: Cardinal; Offset: Integer);
var
OffsetSrc: ^Byte;
begin
OffsetSrc := Src;
inc(OffsetSrc, Offset);
Move(OffsetSrc^, Dest^, Len);
end;但是我想我可能更喜欢在helper函数之外进行指针运算。
发布于 2011-06-28 18:19:49
您可以使用以下代码:
procedure CopyMemory(Destination: Pointer; Source: Pointer; Length, fromByte: Integer);
begin
move(PAnsiChar(Source)[frombyte],PAnsichar(Dest)[frombyte],Length-fromByte);
end;并且不要重写移动的部分。依赖VCL版本。如果需要,也可以使用FastCode version。
发布于 2011-06-28 18:03:45
你仍然可以使用CopyMemory,只是使用第一个未发送字节的地址作为源指针。
https://stackoverflow.com/questions/6504705
复制相似问题