wxWidject поставляется в исходниках. поэтому, первый шаг, который требуется сделать — это откомпиллировать эти исходники. проект для студии лежит в следующей папке
\wxWidgets-2.8.7\build\msw\ (разумеется, для винды).
перед компилляцией исходников нужно выбрать режим компилляции (релиз, дебаг, либина, длл). если вам нужно откомпиллировать исходники как debug dll, то следует выбрать следующий режим
Dll Unicode Debug
в компилляции есть одна хитрость. если попытаться просто откомпиллировать солюшион, то компилляция обломается, если мне не изменяет мой склероз, на проекте dbgrid. поэтому, лучше поступить следующим образом:
1. выбирать ручками (мышкой) отдельно каждый проект и компилять его отдельно (а не солюшион)
2. если компиляция проекта не удалась (dbgrid, odbc, qa), то временно пропускаем эти проекты. они привязаны к другим проектам и не могут быть откомпиллированы без нужных dll (или lib).
3. компиллируем все возможные проекты (первый проход)
4. компиллируем проекты, которые ранее не удалось откомпиллить. теперь нужные dll имеются и пропущенные проекты должны откомпиллироваться нормально
в результате компилляции исходников имеем следующую папку, и в ней будут лежать откомпиллированные dll.
wxWidgets-2.8.7\lib\vc_dll\
далее. создаем свой проект и хотим прикрутить к нему wxWidject. сложность в том, что, в зависимости от режима компилляции (дебаг, релиз) требуется разная настройка параметров проекта.
допустим, что мы хотим собрать свой проект как debug. в таком случае нам потребуется прописать некоторые настройки.
1. C/C++ Additional Include Directories: vc_dll/mswud;include;.;vc_dll/mswud/wx;msvc
2. C/C++ Optimization: Disabled
3. C/C++ Preprocessor: WIN32;_DEBUG;_WINDOWS;__WXMSW__;WXUSINGDLL;$(NOINHERIT)
настройки самой студии:
1. VC++ Directories Include files: wxWidgets-2.8.7\include\msvc + \wxWidgets-2.8.7\include
2. VC++ Directories Libraries files: wxWidgets-2.8.7\lib\vc_dll + wxWidgets-2.8.7\lib
пути я привел свои, вы припишите свои (зависят от версии wxWidject)
по моему, ничего не пропустил. при таких настройках проект свободно работает с wxWidject как с dll и никаких проблем не наблюдается. для проверки простой код
#pragma once
#include "wx/wx.h"
class App : public wxApp
{
public:
App();
~App();
virtual bool OnInit();
virtual int OnExit();
};
#include "StdAfx.h"
#include "App.h"
IMPLEMENT_APP(App)
//-----------------------------------------------------------------------------
// Name : App
// Parameters :
// Return :
// Description : Constructor
//-----------------------------------------------------------------------------
App::App()
{
}
//-----------------------------------------------------------------------------
// Name : ~App
// Parameters :
// Return :
// Description : Destructor
//-----------------------------------------------------------------------------
App::~App()
{
}
//-----------------------------------------------------------------------------
// Name : OnInit
// Parameters :
// Return :
// Description :
//-----------------------------------------------------------------------------
bool App::OnInit()
{
return true;
}
//-----------------------------------------------------------------------------
// Name : OnExit
// Parameters :
// Return :
// Description :
//-----------------------------------------------------------------------------
int App::OnExit()
{
return 0;
}