首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自索引的delphi CopyMemory

来自索引的delphi CopyMemory
EN

Stack Overflow用户
提问于 2011-06-28 17:58:26
回答 4查看 2.8K关注 0票数 3

我用的是Delphi7,你能告诉我有没有或者可以在什么地方找到这样的程序: CopyMemory,但我可以从特定的字节数中复制内存。

我需要一些签名如下的东西:

代码语言:javascript
复制
procedure CopyMemory(Destination: Pointer; Source: Pointer; Length: DWORD; fromByte: Integer);

我需要这个,因为我必须通过tcpip发送未发送的字节,这就是为什么我必须提取存储在内存中的未发送的字节的原因。

我已经看过源代码了,我需要重写一些asm部分。我已经很多年没有接触asm了,我更愿意用一些可靠的东西..

谢谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-06-28 18:12:29

代码语言:javascript
复制
procedure CopyMemory(Src, Dest: Pointer; Len: Cardinal; Offset: Integer);
var
  OffsetSrc: ^Byte;
begin
  OffsetSrc := Src;
  inc(OffsetSrc, Offset);
  Move(OffsetSrc^, Dest^, Len);
end;

但是我想我可能更喜欢在helper函数之外进行指针运算。

票数 3
EN

Stack Overflow用户

发布于 2011-06-28 18:19:49

您可以使用以下代码:

代码语言:javascript
复制
procedure CopyMemory(Destination: Pointer; Source: Pointer; Length, fromByte: Integer);
begin
  move(PAnsiChar(Source)[frombyte],PAnsichar(Dest)[frombyte],Length-fromByte);
end;

并且不要重写移动的部分。依赖VCL版本。如果需要,也可以使用FastCode version

票数 4
EN

Stack Overflow用户

发布于 2011-06-28 18:03:45

你仍然可以使用CopyMemory,只是使用第一个未发送字节的地址作为源指针。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6504705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档