Toon posts:

wxWidgets installeren i.c.m. Visual C++ 2005 Express

Pagina: 1
Acties:
  • 198 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik wil wxWidgets installeren om het te kunnen gebruiken onder Visual Studio 2005 Express Edition.
Ik heb het volgende gedaan:
*Visual Studio geinstalleerd
*Microsoft Platform SDK geinstalleerd
*wxWidgets gedownload en geinstalleerd

Daarna moest ik de bestanden build\msw\wx.dsw en src\wxWindows.dsw openen en kiezen voor 'Build Solution' onder Visual Studio. Vervolgens zou het klaar zijn voor gebruik.
Ik krijg echter een reeks foutmeldingen dat hij windows.h niet kan vinden.

(Zie http://punkrockdude.googlepages.com/wx & http://punkrockdude.googlepages.com/wxWindows).

Volgens mij kan ie een bestand uit de Microsoft Platform SDK niet vinden, maar ik weet het niet zeker.
Weet iemand hoe ik het aan de praat krijg??

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 10-12-2025
Probeer eerst een kale windows.h te compileren. Dus test.cpp:
C++:
1
2
#include <windows.h>
// verder niets


je hebt inderdaad de Platform SDK nodig, en je moet in je VC++options het SDK pad toevoegen.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 14-02 19:13
Je hebt inderdaad de Platform SDK niet goed geïnstalleerd. Microsoft heeft specifieke instructies voor de installatie van de Platform SDK voor gebruik met de Express Edition:
http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/
Simpelweg deze instructies volgen lost dit probleem op; ik vermoed dat je niet verder bent gekomen dan stap 2. ;)

[ Voor 9% gewijzigd door Soultaker op 26-08-2006 16:47 ]


Verwijderd

Topicstarter
Ik heb wxWidgets nu weten te compileren zonder errors. Bedankt!

Wanneer ik een progje wil maken, krijg ik de volgende foutmelding:
Compiling resources...
.\resource.rc(1) : fatal error RC1015: cannot open include file 'wx/msw/wx.rc'.


Ik heb precies de aanwijzingen gevolgd van de site wat betreft de project properties.
De stappen die ik heb gevolgd voor het maken van het project staan hier.

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 14-02 19:13
Lijkt me dat je toch je een include path mist. Hoe ziet dat er uit? (Gebruik je die environmental variables of niet?) En waar staat dat bestand eigenlijk?

[ Voor 13% gewijzigd door Soultaker op 31-08-2006 16:00 ]


Verwijderd

Topicstarter
wxWidgets staat hier: C:\wxWidgets-2.6.3

Er is een environmental variable, namelijk: WXWIN (C:\wxWidgets-2.6.3).

Mijn project staat hier: C:\Documents and Settings\Elmo\My Documents\Visual Studio 2005\Projects\proef

In resource.rc staat alleen:
#include <wx/msw/wx.rc> (Gedaan volgens aanwijzingen van de site)

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 14-02 19:13
Maar, waar staat die wx.rc echt?

Als het goed is bestaat het bestand c:\ergens\ver\weg\wx\msw\wx.rc, en dan hoort c:\ergens\ver\weg dus in je include path te zitten. Probeer die eens als 'echt' pad in te vullen? (Zou me niets verbazen als er iets mis gaat met die environmental variable; dat werkt altijd heel raar onder Windows.)

Verwijderd

Topicstarter
Ik heb er dit van gemaakt: #include <C:/wxWidgets-2.6.3/include/wx/msw/wx.rc>.
Maar, ik krijg nu de volgende foutmelding:

C:/wxWidgets-2.6.3/include/wx/msw/wx.rc(23) : fatal error RC1015: cannot open include file 'wx/msw/rcdefs.h'.

Dat zou dus betekenen dat ik elk .rc-bestand de filepaths absoluut moet gaan maken....? :'(

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 14-02 19:13
Nee, absoluut niet. Je moet je include path goed zetten; mik die C:/wxWidgets-2.6.3/include er eens in (en include dan weer gewoon wx/msw/wx.rc in je source file). Als het daarna nog steeds niet werkt, vermeld dan even wat er wél allemaal in het include path staat!

Verwijderd

Topicstarter
Eerlijk gezegd begrijp ik niet helemaal wat je bedoelt :$
Wat bedoel je precies met het include path? De include-statement in resource.rc? (Die is #include <C:/wxWidgets-2.6.3/include/wx/msw/wx.rc>).

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 14-02 19:13
Nee, het include path dat je in Visual Studio in kunt stellen bij Project Properties ofzoiets.

Zoals de instructies op de wiki ook zeggen, moet je een aantal dingen goed instellen, waaronder de gebruikte libraries, include paths, en library paths. Dit zijn dus allemaal instellingen in de IDE, en in principe eigenschappen van het project (maar je kunt ze ook voor de hele solution of voor de hele IDE instellen, geloof ik).

[ Voor 20% gewijzigd door Soultaker op 01-09-2006 15:37 ]


Verwijderd

Topicstarter
Wat er in de instructies stond had ik al gedaan.

Ik heb nu in de algemene properties een aantal mappen toegevoegd.
Nu krijg ik de volgende foutmeldingen:
Linking...
MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _free already defined in LIBCMTD.lib(dbgheap.obj)
MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _strchr already defined in LIBCMTD.lib(strchr.obj)
........
........
enz. enz.
.......
.....
MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: __fileno already defined in LIBCMTD.lib(fileno.obj)
LINK : warning LNK4098: defaultlib 'MSVCRTD' conflicts with use of other libs; use /NODEFAULTLIB:library
Hello.obj : error LNK2019: unresolved external symbol "public: void __thiscall wxStringData::Free(void)" (?Free@wxStringData@@QAEXXZ) referenced in function "public: void __thiscall wxStringData::Unlock(void)" (?Unlock@wxStringData@@QAEXXZ)
C:\Documents and Settings\Elmo\My Documents\Visual Studio 2005\Projects\proef\Debug\proef.exe : fatal error LNK1120: 1 unresolved externals

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 14-02 19:13
Dat klinkt goed; lijkt er op dat de include path in ieder geval klopt nu, anders zou je niet aan linken toekomen.

Wat betreft de foutmelding van de linker: dat staat ook genoemd op de Wiki, precies onder het gedeelte dat ik aanwees:
If you have errors like:
MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: _free already defined in LIBCMTD.lib(dbgheap.obj)

then put this in Linker > Input > "Ignore Specific Library" : LIBCMTD.

Verwijderd

Topicstarter
Dat werkt idd :) :)

Dit hou ik nu over als foutmeldingen:

Linking...
Hello.obj : error LNK2019: unresolved external symbol "public: void __thiscall wxStringData::Free(void)" (?Free@wxStringData@@QAEXXZ) referenced in function "public: void __thiscall wxStringData::Unlock(void)" (?Unlock@wxStringData@@QAEXXZ)
C:\Documents and Settings\Elmo\My Documents\Visual Studio 2005\Projects\proef\Debug\proef.exe : fatal error LNK1120: 1 unresolved externals



Ik heb al gegoogled, maar ik kan niet een oplossing vinden.

[ Voor 6% gewijzigd door Verwijderd op 01-09-2006 16:18 ]


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 14-02 19:13
En je hebt wel alle wx libraries toegevoegd?

edit:
Vermeld dan even welke libraries je precies gebruikt (en de command line arguments voor de compiler/linker), want de vorige keer dat je zei dat je de instructies uitgevoerd had, klopte dat niet. :+

[ Voor 70% gewijzigd door Soultaker op 01-09-2006 17:19 ]


Verwijderd

Topicstarter
Dat heb ik precies gedaan als op de site stond.

Verwijderd

Topicstarter
C++
|
-General - Add. Include Directories: $(WXWIN)\include;$(WXWIN)\contrib\include;$(WXWIN)\lib\vc_lib\mswd

Linker
|
-General - Add. Libr. Directories: "$(WXWIN)\lib";"$(WXWIN)\contrib\lib";"$(WXWIN)\lib\vc_lib"
-Input - Add. Dependecies: wxmsw26d_core.lib wxbase26d.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexd.lib wxexpatd.lib winmm.lib comctl32.lib rpcrt4.lib wsock32.lib oleacc.lib odbc32.lib
Pagina: 1