首页
社区
课程
招聘
请问诸位大大,RtlZeroMemory这个函数是如何使用的?[求助]
发表于: 2006-12-13 19:31 8856

请问诸位大大,RtlZeroMemory这个函数是如何使用的?[求助]

2006-12-13 19:31
8856
收藏
免费 0
支持
分享
最新回复 (17)
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
2
http://bbs.pediy.com/showthread.php?s=&threadid=35999
看完你就知道了
2006-12-13 19:35
0
雪    币: 193
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢版主,我去看看!
2006-12-13 20:04
0
雪    币: 193
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
汗,看了半天有点云里雾里啊(我是菜鸟啊),版主可否详细解说一番,谢谢!
2006-12-14 19:19
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
5
那你查MSDN好了,直接输入那个名字就能查到了
2006-12-14 19:24
0
雪    币: 50161
活跃值: (20610)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
6
google搜索,建议遇到问题第一步就是搜索
2006-12-14 19:56
0
雪    币: 193
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
ok,回家查MSDN,其实我百度搜过了,貌似没有,呵呵!谢谢!
2006-12-14 20:01
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
8
char PointerBuffer[256];
RtlZeroMemory(&PointerBuffer,sizeof(PointerBuffer));
2006-12-14 21:04
0
雪    币: 35
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
9
楼主,开动大脑这个机器.
只有两个参数,第一个肯定是地址,第二个肯定是要填充0的地址的长度了.
要有所思考呀,呵呵.
2006-12-14 21:07
0
雪    币: 193
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
最初由 HorstStein 发布
楼主,开动大脑这个机器.
只有两个参数,第一个肯定是地址,第二个肯定是要填充0的地址的长度了.
要有所思考呀,呵呵.

汗,这个我知道啊,只是想看看他的应用啊,或许是我的表达不清!
2006-12-15 11:20
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
11
我在那个帖里。。。整个函数都分析过了。。。就是将一片内存区域填0,这样当你在里面写字符数据时,就不需要把结束符也写上去了
2006-12-15 11:31
0
雪    币: 721
活跃值: (350)
能力值: ( LV9,RANK:1250 )
在线值:
发帖
回帖
粉丝
12
好像和memset函数差不多,不过把第二个参数变成了0而已
2006-12-15 12:16
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
13
这个函数一般是用来初始化局部变量的缓冲区用的。这个函数可以将缓冲区的所有数据重归为0
2006-12-15 12:29
0
雪    币: 721
活跃值: (350)
能力值: ( LV9,RANK:1250 )
在线值:
发帖
回帖
粉丝
14
看来这是编程的问题,而不是一个具体函数的问题。
2006-12-15 12:35
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
15
主要就效率问题吧

每次都写入结束标记,还是先初始化?
2006-12-15 12:42
0
雪    币: 193
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
汗,晚上再研究了,我基本明白了.谢谢各位版主啊!
2006-12-15 13:26
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
学习哈~学习哈
2006-12-15 13:29
0
雪    币: 258
活跃值: (230)
能力值: ( LV12,RANK:770 )
在线值:
发帖
回帖
粉丝
18
vc6.0
定义成宏定义:
#define RtlZeroMemory(Destination,Length) memset((Destination),0,(Length))

相当与memset((Destination),0,(Length))...

RtlZeroMemory
在ntdll库中汇编(可编译的vc内联汇编)声明如下:
VOID
  RtlZeroMemory(
    IN VOID UNALIGNED  *Destination,
    IN SIZE_T  Length
    );
{

      push    edi
      mov     edi, dword ptr [Destination]
      mov     ecx, dword ptr [Length]
      xor     eax, eax--->清0
      cld
      mov     edx, ecx
      and     edx, 3
      shr     ecx, 2
      rep     stos dword ptr es:[Destination]--->初始化清0
      or      ecx, edx
      jnz    label
      pop     edi
      retn    8
label: rep     stos byte ptr es:[edi]--->初始化清0
      pop     edi
      retn    8
}
2006-12-15 13:58
0
游客
登录 | 注册 方可回帖
返回
//