您的位置:首页 > 其它

为什么同样的程序在别人机子上可以运行,在我的机子上报错呢?error C2011

2013-10-01 17:14 651 查看
我用的是VC+openCV,为什么下面这个程序在别人的机子上可以正常运行,而在我的机子上会报错呢?我觉得是我的visual studio出了问题,但不知道问题在哪?
程序如下:
#include"stdafx.h"
#include"cv.h"
#include"highgui.h"

void main()
{
IplImage* img=cvLoadImage("D:\\001.jpg");
    
IplImage* img1hdr=cvCreateImageHeader(cvSize(20,30),img->depth,img->nChannels);
IplImage* img2hdr=cvCreateImageHeader(cvSize(20,30),img->depth,img->nChannels);

img1hdr->origin=img->origin;
img2hdr->origin=img->origin;  
img1hdr->widthStep=img->widthStep;
img2hdr->widthStep=img->widthStep;

img1hdr->imageData=img->imageData+10*img->widthStep+5*img->nChannels;
img2hdr->imageData=img->imageData+60*img->widthStep+50*img->nChannels;

cvNot(img1hdr,img1hdr);
cvNot(img2hdr,img2hdr);

cvNamedWindow("crystal",0);
cvShowImage("crystal",img);
cvWaitKey(0);
cvReleaseImage(&img);
cvReleaseImageHeader(&img1hdr);
         cvReleaseImageHeader(&img2hdr);
cvDestroyWindow("crystal");
}
报错如下:
------ 已启动生成: 项目: excercise3_6, 配置: Debug Win32 ------
正在编译...
excercise3_6.cpp
d:\opencv\cv\include\cvcompat.h(784) : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(47) : error C2011: “vc_attributes::YesNoMaybe”: “enum”类型重定义
        d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(47) : 参见“vc_attributes::YesNoMaybe”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(57) : error C2011: “vc_attributes::AccessType”: “enum”类型重定义
        d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(57) : 参见“vc_attributes::AccessType”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(71) : error C2011: “vc_attributes::Pre”: “struct”类型重定义
        d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(71) : 参见“vc_attributes::Pre”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(68) : error C3094: “repeatable”: 不允许匿名使用
        d:\visual studio 2008\projects\excercise3_6\excercise3_6\predefined c++ attributes (compiler internal)(147) : 参见“repeatable”的声明
        属性只能应用于: 'class', 'struct'
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(102) : error C2011: “vc_attributes::Post”: “struct”类型重定义
        d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(102) : 参见“vc_attributes::Post”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(99) : error C3094: “repeatable”: 不允许匿名使用
        d:\visual studio 2008\projects\excercise3_6\excercise3_6\predefined c++ attributes (compiler internal)(147) : 参见“repeatable”的声明
        属性只能应用于: 'class', 'struct'
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(133) : error C2011: “vc_attributes::FormatString”: “struct”类型重定义
        d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(133) : 参见“vc_attributes::FormatString”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(145) : error C2011: “vc_attributes::InvalidCheck”: “struct”类型重定义
        d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(145) : 参见“vc_attributes::InvalidCheck”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(142) : error C3094: “repeatable”: 不允许匿名使用
        d:\visual studio 2008\projects\excercise3_6\excercise3_6\predefined c++ attributes (compiler internal)(147) : 参见“repeatable”的声明
        属性只能应用于: 'class', 'struct'
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(155) : error C2011: “vc_attributes::Success”: “struct”类型重定义
        d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(155) : 参见“vc_attributes::Success”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(166) : error C2011: “vc_attributes::PreBound”: “struct”类型重定义
        d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(166) : 参见“vc_attributes::PreBound”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(163) : error C3094: “repeatable”: 不允许匿名使用
        d:\visual studio 2008\projects\excercise3_6\excercise3_6\predefined c++ attributes (compiler internal)(147) : 参见“repeatable”的声明
        属性只能应用于: 'class', 'struct'
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(176) : error C2011: “vc_attributes::PostBound”: “struct”类型重定义
        d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(176) : 参见“vc_attributes::PostBound”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(173) : error C3094: “repeatable”: 不允许匿名使用
        d:\visual studio 2008\projects\excercise3_6\excercise3_6\predefined c++ attributes (compiler internal)(147) : 参见“repeatable”的声明
        属性只能应用于: 'class', 'struct'
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(186) : error C2011: “vc_attributes::PreRange”: “struct”类型重定义
        d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(186) : 参见“vc_attributes::PreRange”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(183) : error C3094: “repeatable”: 不允许匿名使用
        d:\visual studio 2008\projects\excercise3_6\excercise3_6\predefined c++ attributes (compiler internal)(147) : 参见“repeatable”的声明
        属性只能应用于: 'class', 'struct'
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(198) : error C2011: “vc_attributes::PostRange”: “struct”类型重定义
        d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(198) : 参见“vc_attributes::PostRange”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(195) : error C3094: “repeatable”: 不允许匿名使用
        d:\visual studio 2008\projects\excercise3_6\excercise3_6\predefined c++ attributes (compiler internal)(147) : 参见“repeatable”的声明
        属性只能应用于: 'class', 'struct'
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(235) : error C2370: “SA_Yes”: 重定义;不同的存储类
        d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(235) : 参见“SA_Yes”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(236) : error C2370: “SA_No”: 重定义;不同的存储类
        d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(236) : 参见“SA_No”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(237) : error C2370: “SA_Maybe”: 重定义;不同的存储类
        d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(237) : 参见“SA_Maybe”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(240) : error C2370: “SA_NoAccess”: 重定义;不同的存储类
        d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(240) : 参见“SA_NoAccess”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(241) : error C2370: “SA_Read”: 重定义;不同的存储类
        d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(241) : 参见“SA_Read”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(242) : error C2370: “SA_Write”: 重定义;不同的存储类
        d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(242) : 参见“SA_Write”的声明
d:\visual studio\vc\include\codeanalysis\sourceannotations.h(243) : error C2370: “SA_ReadWrite”: 重定义;不同的存储类
        d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(243) : 参见“SA_ReadWrite”的声明
生成日志保存在“file://d:\Visual Studio 2008\Projects\excercise3_6\excercise3_6\Debug\BuildLog.htm”
excercise3_6 - 25 个错误,1 个警告
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

解决办法有二:

方法一:

属性->C/C++->预编译头->不使用预编译头。
可能编译器不同会有不同的方法,方正大致就这样了。

方法二:

重新建一个project,然后把这个代码复制进去。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐