Извините, что задал такой вопрос для новичков, но я действительно новичок в openCV и VC++ 2010. Я искал в сети ответ, но у меня не получилось.IntelliSense: аргумент типа «_TCHAR *» несовместим с параметром типа «const char *»
Создание первого проекта "Первая программа-Display Картину" книги OReilly-LearningOpenCV, я столкнулся с этими ошибками:
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]);
Мой отредактирован раздел основан на предложение Роджера Роуланда:
Основываясь на том, что сказал Роджер Rowland, я изменил набор символов свойство проекта не указан. Две ошибки, упомянутые выше, были решены, но эти ошибки поднялись. LNK1120
ошибка: 1 неразрешенных внешних
ошибка LNK2019: неразрешенный внешний символ cvReleaseImage ссылка в функции главного
Как я могу решить эту проблему?
Свойства вашего проекта, очевидно, указывают UNICODE, поэтому либо изменяйте свойства проекта, либо изменяйте свой код, чтобы использовать макрос '_T' вокруг цитируемых строк, например. 'cvShowImage (_T (" Example1 "), img);' –
спасибо @Roger Rowland, но я протестировал ваше предложение и попытался использовать _T вокруг цитируемых строк. Ошибки увеличиваются до 5 чисел. Я имею в виду, кроме строки 6 «IplImage * img = cvLoadImage (argv [1]); который произвел две ошибки выше, мы будем иметь ошибку ** IntelliSense: аргумент типа «const wchar_t *» несовместим с параметром типа «const char *» ** в каждой строке, в которой указаны строки, и я не понял ваш цель сказать _хугот свойства проекта_ – sepideh
Вам нужно подчеркнуть перед Т, или, альтернативно, использовать 'TEXT (« string »)' вместо '_T (« string »)'. Если вы не можете этого сделать, щелкните правой кнопкой мыши на своем проекте в панели анализатора решений VS2010, выберите «Свойства» в меню, затем в разделе «Свойства конфигурации/Общие» найдите, где он говорит * Набор символов *, и измените это на * Не задано*. –