很抱歉问了这样一个初学者问题,但我对 openCV 和 VC++2010 真的很陌生。我在网上搜索了答案,但没有找到合适的答案。
构建OReilly-LearningOpenCV这本书的第一个项目“First Program-Display a Picture”,我遇到了这些错误:
1-error C2664: 'cvLoadImage' : cannot convert parameter 1 from '_TCHAR *' to 'const char *'
2-IntelliSense: argument of type "_TCHAR *" is incompatible with parameter of type "const char *"
这是代码:
#include "stdafx.h"
#include "opencv\highgui.h"
int _tmain(int argc, _TCHAR* argv[])
{ IplImage* img = cvLoadImage( argv[1] );
cvNamedWindow( "Example1", CV_WINDOW_AUTOSIZE );
cvShowImage( "Example1", img );
cvWaitKey(0);
cvReleaseImage( &img );
cvDestroyWindow( "Example1" );
system("pause");
return 0;
}
这是我从 Microsoft Visual Studio 2010 得到的信息:
1>------ Build started: Project: FirstProgram_DisplayAPicture3, Configuration: Debug x64 ------
1>Build started 7/6/2013 11:13:00 AM.
1>InitializeBuildStatus:
1> Touching "x64\Debug\FirstProgram_DisplayAPicture3.unsuccessfulbuild".
1>ClCompile:
1> All outputs are up-to-date.
1> FirstProgram_DisplayAPicture3.cpp
1>FirstProgram_DisplayAPicture3.cpp(9): error C2664: 'cvLoadImage' : cannot convert parameter 1 from '_TCHAR *' to 'const char *'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:00.68
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
可能需要的其他信息:
我已经制作了一个 win32 控制台应用程序,并且在向导的第二页中我选择了预编译头设置。
我已将项目的平台更改为 x64,因为我使用的是 win7x64 作为操作系统。
我已将 openCV 库正确链接到我的项目。
我刚刚介绍了 highgui.lib 作为附加依赖项
任何帮助,将不胜感激。
我该怎么做才能解决这两个错误?
编辑部分:
请注意,这些错误发生在第 6 行,我的意思是 IplImage* img = cvLoadImage( argv[1] );
我根据 Roger Rowland 的建议编辑的部分:
根据 Roger Rowland 所说,我将项目的 Character Set 属性更改为 Not Set。上面提到的两个错误得到了解决,但是这些错误上升了。
错误 LNK1120:1 未解析的外部
错误 LNK2019:未解析的外部符号 cvReleaseImage 在函数 main 中引用
我该如何解决这个问题?