求助:在vc6.0中运行CImg库程序为何总出错?

fengbingchun
博客专家认证
2010-11-11 09:34:04
按照参考手册中说的一个小例子:
#include "CImg.h"
using namespace cimg_library;

int main()
{
CImg<unsigned char> img(640, 400, 1, 3);

img.fill(0);

unsigned char purple[] = {255, 0, 255};

img.draw_text("Hello World", 100, 100, purple);

img.display("My first CImg code");

return 0;
}

出现的错误为:
error C2039: 'FILE' : is not a member of 'std'
error C2039: 'va_list' : is not a member of 'std'
error C2039: 'fprintf' : is not a member of 'std'
error C2039: 'fabs' : is not a member of 'std'
error C2039: 'log' : is not a member of 'std'
总共100多个类似的错误,求高手们,哪里错误了,是缺少什么头文件吗?
...全文
439 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
light21 2013-02-27
  • 打赏
  • 举报
回复
把img.draw_text("Hello World", 100, 100, purple); 改成img.draw_text(100,100,"Hello World", purple); 试试!
qq545983092 2012-10-26
  • 打赏
  • 举报
回复
请问lz解决问题没,我也碰到这样的问题
zhrolu0000 2012-06-28
  • 打赏
  • 举报
回复
用1.0.5版本下控制台程序是可以运行的,但在mfc中运行出现一个错误,TrackMouseEvent没声明,但是我看WinUser.h中是有这个函数的?注释CImg。h中的错误代码是可以运行的,但没找到其它解决办法。
zhrolu0000 2012-06-27
  • 打赏
  • 举报
回复
我也是遇到这样的问题,不知怎么解决,在vc6.0中
飘逸KS 2012-05-09
  • 打赏
  • 举报
回复
换早期版本的CImg就可以了。我试过的
fengbingchun 2010-11-11
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 hastings 的回复:]
VS2010搞定了~~
[/Quote]
我用vs2008运行也没错,不过现在需要在vc6.0中完成
hastings 2010-11-11
  • 打赏
  • 举报
回复
VS2010搞定了~~
akmaker 2010-11-11
  • 打赏
  • 举报
回复
缺少头文件
Abcix 2010-11-11
  • 打赏
  • 举报
回复
光棍节快乐
fengbingchun 2010-11-11
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 zzz_zou 的回复:]
CImg.h

通过报错, 我觉得 你是不是要using namespace std;
[/Quote]

谢谢,我已试过了,加这条语句不起作用。
zzz_zou 2010-11-11
  • 打赏
  • 举报
回复
我也不知道了。。 100多个 一定是头文件问题
zzz_zou 2010-11-11
  • 打赏
  • 举报
回复
CImg.h

通过报错, 我觉得 你是不是要using namespace std;
fengbingchun 2010-11-11
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 hastings 的回复:]
把std::换成::
即去掉std
注意:两个冒号不要去掉~~
这样做之后,还会有其他错误~~
编译错误提示你默认参数重定义~~
然后你把默认参数删掉~~

void foo(int a,int b=1);
改成
void foo(int a,int b);
全部改完后,还会有一个编译器致命错误~~
这个错误我就搞不定了~~
[/Quote]
谢谢!CImg库主页说可以在vc6.0环境中运行呀,我更新Microsoft Platform SDK Febrary 2003到vc6.0还是不行,还有没有其他的方法呢?
hastings 2010-11-11
  • 打赏
  • 举报
回复
把std::换成::
即去掉std
注意:两个冒号不要去掉~~
这样做之后,还会有其他错误~~
编译错误提示你默认参数重定义~~
然后你把默认参数删掉~~

void foo(int a,int b=1);
改成
void foo(int a,int b);
全部改完后,还会有一个编译器致命错误~~
这个错误我就搞不定了~~
fengbingchun 2010-11-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ouyh12345 的回复:]
在#include "CImg.h"前再包含几个头文件
[/Quote]

我试了几次,基本上把c、c++的头文件都加上了,还是不起任何作用呀?望高手进一步指点,谢谢!
fengbingchun 2010-11-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 tiger9991 的回复:]
引入
#include <stdio.h>
看看
[/Quote]

加入这个头文件还是不起任何作用
fengbingchun 2010-11-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ouyh12345 的回复:]
在#include "CImg.h"前再包含几个头文件
[/Quote]

应该包含哪几个头文件呢?
傻X 2010-11-11
  • 打赏
  • 举报
回复
引入
#include <stdio.h>
看看
ouyh12345 2010-11-11
  • 打赏
  • 举报
回复
在#include "CImg.h"前再包含几个头文件

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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