_memcpy、_memset 的问题,搞了3天快疯了!

Sandrer Sandrer 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我使用的是 VS2005,正在写一个标准库文件!
我设置编译器忽略所有默认库,然后自己写了一个 Memset、Memcpy 的函数来替换默认的函数(代码里也没有使用 new,而改用 GlobalAlloc 函数)!
但是当编译的时候,总是提示:
error LNK2001: 无法解析的外部符号 _memcpy
或者
error LNK2001: 无法解析的外部符号 _memset

但是我综观所有代码,都没有调用 memcpy 和 memset 函数啊!

下面是我自己写的 Memset 和 Memcpy 函数:
void * Memset(void *dst, int val, UINT count)
{
void *start = dst;

while (count--) {
*(char *)dst = (char)val;
dst = (char *)dst + 1;
}

return start;
}

void * Memcpy(void *lpDst, const void *lpSrc, UINT uSize)
{
void *lpRet = lpDst;

while (uSize--) {
*(char *)lpDst = *(char *)lpSrc;
lpDst = (char *)lpDst + 1;
lpSrc = (char *)lpSrc + 1;
}

return lpRet;
}


出错的地方(我都是把每个代码文件都注释一部分,然后看看有没有错误!如果有则表示出错的地方不在注释的部分;如果没有则表示出错的地方就是我注释掉的位置)总是出现在下面几个情况:

1、调用 Memcpy 或 Memset 时
我在包含这两个函数体实现代码的 cpp 文件中调用它们的时候没出错!但在其它的 cpp 文件中调用的话就会出错(我已经引用了头文件,或者使用 extern 来定义它们,但还是出现 error LNK2001: 无法解析的外部符号 _memxxx 这个错误

2、初始化结构变量的时候
例如:
NONCLIENTMETRICS ncm = {sizeof(NONCLIENTMETRICS)}; ← 这样会出错:error LNK2001: 无法解析的外部符号 _memset
但是:
NONCLIENTMETRICS ncm;
ncm.cbSize = sizeof(NONCLIENTMETRICS);
这样就没有错误!

连续搞了三天了,网上也没有发现我这情况,也不知道问题出在哪里!!!!!!

可能我表达的问题不够详细,有不明白的地方请举手!
...全文

相关推荐

评论 23
收藏 已收藏
分享
返回顶部
Sandrer
VC/MFC 16,550 成员 421,606 内容