Рассказ о том, как создать очень простое приложение.
Основной источник: http://docs.wxwidgets.org/trunk/overview_helloworld.html.
Основной источник: http://docs.wxwidgets.org/trunk/overview_helloworld.html.
Запускаем MS VS, создаем пустой проект VisualC++:
В свойствах проекта указываем "Набор символов: Использовать набор символов Юникода":
В свойствах проекта указываем: Linker->System->Subsytem: Windows.
Для конфигурации "WinXP": C/C++->Language->Confirmation mode: No.
Добавляем к проекту файл wxHelloWorld.cpp.
Теперь в свойствах проекта стала доступна ветка "Свойств конфигурации-С/С++".
В свойствах проекта, в опции "Свойств конфигурации-С/С++-Предварительно откомпилированные заголовки" указываем "Создать (Yc)" и выбрать файл stdafx.h.
Добавим в проект новый файл stdafx.h.
Добавим в файл stdafx.h строчку.
#include <wx/wxprec.h>
Добавим в класс wxHelloWorld.cpp строчку:
#include "stdafx.h"
Пробуем откомплировать проект. Скорее всего, не получится:
fatal error C1083: Не удается открыть файл включение: wx/wxprec.h: No such file or directory.
Значит, нужно сделать доступной библиотеку wxWidgets. Можно прямо указать место, можно включить библиотеку в переменную Path операционной системы. Можно создать макроопределение с путем, и везде использовать это макроопределение.
Создадим макроопределение: Меню-Вид-Диспетчер свойств.
Создаем новую страницу свойств с именем WxDir:
Видим, что во все конфигурации проекта добавилась новая страница WxDir.
Добавим в нее пользовательский макрос WXWIN, указав в качестве значения макроса путь к библиотеке WxWindows, например: D:\Cpp\Lib\wx:
Теперь этот макрос можно использовать.
Следует на странице свойств для целевых конфигураций (например, для Debug | Win32 и Release | Win32) в разделе Общие свойства- Каталоги С++ указать значения для включаемых каталогов и каталога библиотек:
$(WXWIN)\include;$(WXWIN)\include\msvc;$(IncludePath)
и
$(WXWIN)\lib\vc_lib;$(LibraryPath)
соответственно:
В дальнейшем страницу свойств можно использовать в других проектах WxWidgets.
...
Все, можно компилировать!
..."ошибка"...:
1>LINK : fatal error LNK1561: точка входа должна быть определена
Все верно, точка входа должна быть определена. Да и вообще не написано ни строчки полезного кода.
В wxWidgets, точка входа ("main") реализована в макросе wxIMPLEMENT_APP(), который создает экземпляр класса приложения и запускает цикл обработки событий GUI.
Просто в конец файла wxHelloWorld.cpp добавим строчку
wxIMPLEMENT_APP (wxHelloWorld);
В наследнике нужно лишь переопределить виртуальный метод wxApp :: OnInit (), в котором программа может быть инициализирована, например, путем создания и показа нового главного окна. И так, объявляем класс. В итоге wxHelloWorld.cpp должен выглядеть так:
#include "stdafx.h" class wxHelloWorld : public wxApp { public: virtual bool OnInit() { return true;}; }; wxIMPLEMENT_APP(wxHelloWorld);Код компилируется, приложение собирается, но пока от него толку совсем немного.
Нужно добавит окно и показать его.
Добавляем окно (продолжение).
Комментариев нет:
Отправить комментарий