Objekt zu groß ?
-
Hallo,
ich habe ein Projekt was läuft und die erweiterte Version die einen
verflixten Fehler aufweist.Ich habe eine Klasse CApp von der ein globales Objekt oApp ertsellt wird.
Die ObjektDatei im funktionstüchtigen Projekt ist 119kB, in der fehlerträchtigen Erweiterung 165kB.Das Projekt verwendet eine DLL. Die DLL baut eine Verbindung zu einem Server auf. Im erweiterten Projekt funktioniert das nicht mehr, die DLL wurde nicht geändert ! Es kommt ein TimeOut, der Server ist garantiert erreichbar.
Nun hatte ich gestern noch das Projekt auf das nötigste Reduziert um dem Fehler
auf die Schliche zu kommen, dabei trat der Effekt auf, daß bevor WinMain aufgerufen wurde bereits ein C00...005 Speicherfehler kam.Ein Versuch das Objekt nicht gloabl anzulegen, sondern dynamisch zu erzeugen
und einen globalen Zeiger zu verwenden brachte auch nichts.Die Klasse CApp hat einige Zeiger auf RecordObjekte welche mit new erzeugt werden. Den Konstruktoren werden zum Teil sehr lange Stringkostanten übergeben.
Irgendwie habe ich das Gefühl, irgendwo wird der Speicher ungewollt überschrieben. Könnte das an den Konstanten liegen ?
( #define SHEMA_PREFERENCES "nrdev I, login I, nrma I, nrma_ext I, nrpat I, nrtour I, callfrom I, idxlk I, idxep I, idxarzt I, idxvital I, idxtxt I, lastform I, dstart I, tstart I, tstop I, tblock I, tstopweg I, tbeg I, tsbeg I, tsend I, weg I, planung I, done I, keysoff I, notiz C(254), notizhdr C(64), autoweg I, view_cf I, view_datum I, todo_cf I, sz_cf I, sz_goto I, sz_islstg I, sz_isarzt I, lk_cf I, lk_mode I, lk_add I, patdata_cf I, angdata_cf I, arzt_cf I, sync_cf I, ma_cf I, txt_cf I, txt_mode I, vital_cf I, bilanz_cf I, lage_cf I, dbname C(32), dbusr C(32), dbpwd C(32), datum I, ep I, ma I, res I, mode I, ip0 I, ip1 I, ip2 I, ip3 I, url C(254)"
)Mir wird wohl nicht übrig bleiben als die Erweiterung Stück für Stück neu zu bauen ...
Hat jemand einen anderen Tip ?
Vielen Dank.
MfG
RB
-
Vielleicht auf den ersten Blick keine Hilfe:
Versuch deine zukünftigen Projekte anders zu designern das ist ja fubar
-
ja aber ein globales AnwendungsObjekt ist doch ok ... oder nicht
Die Mfc macht es doch auch so und es geht ... leiderMfG
RB