virt 1 Жалоба Опубликовано March 1, 2011 Привет всем.Необходимо создать проект Windows form application и затем вывести полученное изображение с камеры на форму.Функцию преобразования в битмар я нашел на просторах этого форума.Но vs2008 ругается на HBITMAP.При написании например следующего простого кода #include "stdafx.h" #include "Form1.h" using namespace Motion_Detect; HBITMAP bit; [sTAThreadAttribute] int main(array<System::String ^> ^args) { // Включение визуальных эффектов Windows XP до создания каких-либо элементов управления Application::EnableVisualStyles(); Application::SetCompatibleTextRenderingDefault(false); // Создание главного окна и его запуск Application::Run(gcnew Form1()); return 0; } выдает ошибки 1>.\Motion_Detect.cpp(7) : error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "bit" 1>.\Motion_Detect.cpp(7) : error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию 1>.\Motion_Detect.cpp(7) : error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию Нужно что-то подключить? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано March 1, 2011 Назовите переменную по-другому. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
virt 1 Жалоба Опубликовано March 1, 2011 пробовал-не помогает.Причем если создавать консольное приложение и подключать лишь #include "cv.h" #include "highgui.h" #include <time.h> #include <math.h> #include <ctype.h> #include <stdio.h> ,то на следующее объявление HBITMAP CreateRGBBitmap; не ругается.Но мне нужно windows form application.А там ругается Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
virt 1 Жалоба Опубликовано March 1, 2011 Причем если в стандартное оконное приложение написать вначале #include "stdafx.h" #include "Form1.h" #include "cv.h" #include "highgui.h" #include <time.h> #include <math.h> #include <ctype.h> #include <stdio.h> using namespace Draft; HBITMAP C; То,выдает следующие ошибки: 1>d:\program files\opencv2.1\include\opencv\cxtypes.h(214) : error C3862: cvRound: неуправляемую функцию невозможно компилировать с параметрами /clr:pure или /clr:safe 1> Встроенный машинный код на языке ассемблера в управляемом коде не поддерживается 1>d:\program files\opencv2.1\include\opencv\cxtypes.h(214) : error C3645: cvRound: __clrcall невозможно использовать с функциями, скомпилированными в машинный код 1>d:\program files\opencv2.1\include\opencv\cxoperations.hpp(78) : error C3862: CV_XADD: неуправляемую функцию невозможно компилировать с параметрами /clr:pure или /clr:safe 1> Встроенный машинный код на языке ассемблера в управляемом коде не поддерживается 1>d:\program files\opencv2.1\include\opencv\cxoperations.hpp(78) : error C3645: CV_XADD: __clrcall невозможно использовать с функциями, скомпилированными в машинный код 1>Журнал построения был сохранен в "file://d:\Documents\Open cv\job\new\Draft\Debug\BuildLog.htm" 1> А библиотеки вроде бы все подключил в проекте Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
virt 1 Жалоба Опубликовано March 1, 2011 Сделал следующее в Проект-Свойства-Свойства конфигурации-Общие выбрал для "Поддержка средыCLR" -> поддержка clr-среды(/dr) и компилятор перестал ругаться на тип HBITMAP, правда добавив к тому же библиотеки #include "stdafx.h" #include "Form1.h" #include "highgui.h" #include <time.h> #include <math.h> #include <ctype.h> #include <stdio.h> using namespace Draft; HBITMAP C; [sTAThreadAttribute] int main(array<System::String ^> ^args) и т.д Насколько решение верно не знаю.И видимо все-таки HBITMAp описан в одном из заголовочных файлов,но я не стал его искать.Кто найдет лучшее решение-отпишитесь ,пожалуйста. 1 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах