Visual C++ und wxWidgets 2.8



  • [cpp]
    class HalleWeltApp : public wxApp {
    .
    .
    .
    IMPLEMENT_APP(HalloWeltApp)
    [/cpp]

    fällt dir was auf? 😉

    edit: Wieso geht der Cpp-Tag nicht? oO
    edit2: Und verwende lieber wxString anstatt wxChar*



  • Ok, danke, das hatte ich übersehen... 😃

    aber 😮

    neu erstellt, und 225 Fehler!!! 😕

    Oh man...die hier alle reinzustellen wäre verrückt

    Aber die Fehler sind fast alle vom Typ "nicht aufgelöstes externes Objekt"

    base.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: static bool __cdecl wxAppConsole::CheckBuildOptions(char const *,char const *)" (?CheckBuildOptions@wxAppConsole@@SA_NPBD0@Z)" in Funktion ""class wxAppConsole * __cdecl wxCreateApp(void)" (?wxCreateApp@@YAPAVwxAppConsole@@XZ)".
    

    Muss da beim Erstellen des Projektes was bestimmtes beachten??

    Was mich ja noch stutzig macht, ist die Tatsache, dass das Beispiel unter wxWidgets2.8/samples/dialogs funktioniert...

    Ich weiß echt nciht mehr, was ich noch machen soll. 😞



  • du musst noch die Libs eintragen. d.h. du musst vc mitteilen, wo die wxw-libs zu finden sind (standard in lib/vc_dll). Weiterhin musst du VC noch sagen, dass er

    wxbase28d.lib und wxmswcore28d.lib (oder so ähnlcih) dazulinken muss. Schau dir einfach an, welche libs das beispiel linkt. das findest du unter eigenschaften->linker



  • Ok, ich habe nun mal alle Einstellungen bei beiden verglichen.

    Habe nun auch alle Libraries aus C:\Program Files\Microsoft Visual Studio 9.0\wxWidgets-2.8.8\lib\vc_lib über Eigenschaften->Linker verlinkt

    Also es sieht schon viel besser aus, hab nun "nur" noch 8 Fehler
    Anscheinend fehlt da immernoch was.

    Verlinkte Bibliotheken:

    wxmsw28d_adv.lib
    wxbase28d_net.lib
    wxmsw28d_html.lib
    wxbase28d_xml.lib
    wxmsw28d_core.lib
    wxbase28d.lib
    wxtiffd.lib
    wxjpegd.lib
    wxpngd.lib
    wxzlibd.lib
    wxregexd.lib
    wxexpatd.lib
    winmm.lib
    comctl32.lib
    rpcrt4.lib
    wsock32.lib
    odbc32.lib
    wxbase28d_odbc.lib
    wxmsw28d_aui.lib
    wxmsw28d_gl.lib
    wxmsw28d_richtext.lib
    wxmsw28d_xrc.lib
    wxmsw28d_media.lib
    wxmsw28d_qa.lib

    Das müssten doch nun mal alle sein.

    Fehler zeigt er mir noch folgende an:

    Verknüpfen...
    base.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""public: virtual bool __thiscall wxApp::Initialize(int &,wchar_t * *)" (?Initialize@wxApp@@UAE_NAAHPAPA_W@Z)".
    base.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""public: virtual void __thiscall wxAppConsole::OnAssertFailure(wchar_t const *,int,wchar_t const *,wchar_t const *,wchar_t const *)" (?OnAssertFailure@wxAppConsole@@UAEXPB_WH000@Z)".
    base.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""public: virtual void __thiscall wxAppConsole::OnAssert(wchar_t const *,int,wchar_t const *,wchar_t const *)" (?OnAssert@wxAppConsole@@UAEXPB_WH00@Z)".
    base.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""wchar_t const * const wxFrameNameStr" (?wxFrameNameStr@@3QB_WB)".
    base.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""protected: void __thiscall wxStringBase::InitWith(wchar_t const *,unsigned int,unsigned int)" (?InitWith@wxStringBase@@IAEXPB_WII@Z)" in Funktion ""public: __thiscall wxStringBase::wxStringBase(wchar_t const *)" (??0wxStringBase@@QAE@PB_W@Z)".
    base.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""void __cdecl wxOnAssert(wchar_t const *,int,char const *,wchar_t const *,wchar_t const *)" (?wxOnAssert@@YAXPB_WHPBD00@Z)" in Funktion ""public: __thiscall wxStringBase::wxStringBase(class wxStringBase const &)" (??0wxStringBase@@QAE@ABV0@@Z)".
    base.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""wchar_t const * const wxEmptyString" (?wxEmptyString@@3PB_WB)".
    C:\Users\Erik\Documents\Visual Studio 2008\Projects\wxWdgetTest2\Debug\wxWdgetTest2.exe : fatal error LNK1120: 7 nicht aufgelöste externe Verweise.
    Das Buildprotokoll wurde unter "file://c:\Users\Erik\Documents\Visual Studio 2008\Projects\wxWdgetTest2\wxWdgetTest2\Debug\BuildLog.htm" gespeichert.
    wxWdgetTest2 - 8 Fehler, 0 Warnung(en)
    ========== Alles neu erstellen: 0 erfolgreich, Fehler bei 1, 0 übersprungen ==========
    

    😕



  • hast du in Eigenschaften - präprozessor WXUSINGDLL definiert?

    Es bietet sich übrigens immer an, wenn man ein funktionierendes Projekt hat, dieses mit dem neuen zu vergleichen, was denn da anders ist. Wenn nichts anders is, sollte es ja dann auch funktionieren 😉



  • Hallo!

    Danke erst einmal für eure Hilfe...leider funktiuoniert es immer noch nicht 😞
    Immernoch die selben 8 Fehler.

    Ich werde das jetzt alles nochmal Schritt für Schritt von vorn machen.

    Wenn das dann immer noch nicht funktioniert, liegts ja vielleicht an diesem Beispiel, was ich hier die ganze Zeit versuche zum laufen bringen (s.o.).

    Hat von euch vielleicht jemand ein kleines Beispiel, welches ungefähr genauso aufgebaut ist, ihr euch aber sicher seit, dass es funktioniert.

    Ich will das wxWidgets hier unbedingt zum laufen bringen...und wenn es mein ganzes Leben dauert 😉

    Grüße Erikly!



  • hier mal ein minimalbeispiel: (ich habs nicht kontrolliert, könnten syntaxfehler drin sein).

    #include <wx/wx.h>
    
    class app : public wxApp
    {
      public:
      bool OnInit()
      {
        wxMessageBox("Geht");
        return false;
      }
    }
    
    IMPLEMENT_APP(app)
    

    Aber ich denke nicht, dass dein Beispiel ne Macke hat, muss an was anderen liegen.



  • Hallo,

    Erikly schrieb:

    Ich will das wxWidgets hier unbedingt zum laufen bringen...und wenn es mein ganzes Leben dauert 😉

    Dann haben wir (hoffentlich) noch lang genug Zeit, das Problem zu lösen 😃

    Das Problem hängt wahrscheinlich mit UNICODE zusammen, siehe dazu auch hier:

    http://www.c-plusplus.net/forum/viewtopic-var-t-is-205559.html

    MfG,

    Probe-Nutzer



  • JAA!!

    Es funktioniert!!

    Da kann ich ja doch noch was für mein restliches Leben einplanen 😃 😉

    Hat am Unicode gelegen...!

    Danke euch nochmal!



  • aber nach der Definition von WXUSEDLL (wo findet man eigentlich einen Hinweis darauf?) habe ich nur noch zwei Fehlermeldungen, die aber mit einem Modul zusammenhängen das ich benutze:
    wxSerialize:_ConvertFromIeeeExtended


Anmelden zum Antworten