首页
社区
课程
招聘
[讨论]VC中对ZeroMemory定义为memset了,如何调用真正的ZeroMemory?
发表于: 2011-6-2 11:38 5521

[讨论]VC中对ZeroMemory定义为memset了,如何调用真正的ZeroMemory?

2011-6-2 11:38
5521
vc2010中对ZeroMemory定义为memset了,

但我不想调用memset这个函数(不想用/MT,不想对vc runtime依赖),
那如何直接调用ZeroMemory?
不想使用LoadLibrary,ZeroMemory使用太多了,麻烦……

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 220
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
自己写个填充0的函数,这么简单!什么都不依赖!
2011-6-2 11:40
0
雪    币: 174
活跃值: (620)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
有现在的API不用,自己写干嘛,我为了减小依赖与体积
2011-6-2 11:44
0
雪    币: 952
活跃值: (1821)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
#undef RtlZeroMemory
#undef ZeroMemory
extern "C" VOID NTAPI RtlZeroMemory(VOID* Destination, SIZE_T Length);
#define ZeroMemory RtlZeroMemory
2011-6-2 11:49
0
雪    币: 579
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
用STOSB就行。
2011-6-2 11:50
0
雪    币: 174
活跃值: (620)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
谢谢,重定义一次可行,就是要多写几行代码而已
2011-6-2 14:03
0
雪    币: 165
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
void *memset(void *dst, int val, size_t size)
{
        char *realdst = (char*)dst;
        for (size_t i = 0; i < size; i++)
                realdst[i] = (char)val;
        return dst;
}

貌似用不了几行代码吧。
2011-6-2 23:34
0
雪    币: 165
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
crt里很多函数自己实现一下根本不难,对减少体积也很有好处。
2011-6-2 23:35
0
雪    币: 130
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
有病吧根我一样
2011-6-2 23:42
0
游客
登录 | 注册 方可回帖
返回
//