我用的是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 个 ==========
程序如下:
#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 个 ==========
d:\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h
可能编译器不同会有不同的方法,方正大致就这样了。