cstdlib(28) : error C2039和error C2873

xiuxiu1017 2013-06-21 03:58:59
工程a调用工程b生成的b.lib
编译时,b编译通过,a报错如下:
2>c:\program files\microsoft visual studio 8\vc\include\cstdlib(28) : error C2039: “strtoul_is_not_a_portable_function_use_strtol_instead”: 不是“`global namespace'”的成员
2>c:\program files\microsoft visual studio 8\vc\include\cstdlib(28) : error C2873: “strtoul_is_not_a_portable_function_use_strtol_instead”: 符号不能用在 using 声明中

网上查资料,很多人说缺少定义。
我的stdafx.h中已经有定义
#include <stdlib.h>
using namespace std;
但是stdafx.h不是第一个编译的.h文件。
于是添加如下定义:
#include <cstdlib>
using namespace std;

报错依旧。。。。
高手指点一下,类似的错误从哪里入手查找?
我把a工程中函数的实现部分都注掉了,只剩下函数定义和实现的空壳,依旧报错
怀疑是环境设置问题,看了一遍也没看出来哪里有问题

svn上以前编译通过的工程下载下来,编译报同样的错误

不知道从哪里排错了。求指点
...全文
528 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
signforlin 2013-12-06
  • 打赏
  • 举报
回复
应该是标准库的问题。如果你的程序都剩空壳了,只能递归往前找包含的库了。 要不装一下VC
buyong 2013-12-06
  • 打赏
  • 举报
回复
是不是你的vc环境被破坏了? 找个机器重装vc. 或者看看c:\program files\microsoft visual studio 8\vc\include\cstdlib 这个文件内容是否异常
赵4老师 2013-12-06
  • 打赏
  • 举报
回复
关闭选项:使用预编译头文件。 再重建所有 试试看。
purish 2013-12-06
  • 打赏
  • 举报
回复
请问这个问题解决了吗?我也碰到这个问题了,在笔记本vs2010上能编译通过,可能真的是vs2010环境配置问题
xiuxiu1017 2013-06-21
  • 打赏
  • 举报
回复
lib文件没有变更过,之前编译是可以通过的,现在编译有问题 应该不是lib库中strtoul或者strtol的问题
xiuxiu1017 2013-06-21
  • 打赏
  • 举报
回复
我自己写的代码没调用过strtoul或者strtol 引用的lib中不确定有没有这两个函数
赵4老师 2013-06-21
  • 打赏
  • 举报
回复
将你代码中的所有strtoul替换为strtol

65,202

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧