Hallo. Ich habe ein Problem: Ich kann keine globalen Objekte von Klassen erstellen. Zwar meckert der Compiler/Linker nicht, aber das ausfuehren von Methoden globaler Objekte fuehrt zum Absturz. Ich vermute, dass die Konstruktoren der Objekte in der Startup-Routine nicht ausgefuehrt werden. Der Code an sich ist in Ordnung, lokale erstellte Objekte funktionieren einwandfrei. Ich benutzte das aktuelle Windows Package vom mspgcc. Hat sich hier schonmal jemand an C++ mit dem mspgcc gewagt, und ist auf gleiche Probleme gestossen, bzw. wenn es diese Probleme nicht gab, welche mspgcc Version wurde benutzt? Danke im Vorraus.
Wie gcc das löst, weiß ich nicht. Andere Compiler (MSC, Borland) legen üblicherweise einen Funktionspointervektor an, dessen Pointer von der Runtime-Initialisierungsroutine der Reihe nach aufgerufen werden. Der Prozeß endet, wenn ein NULL-Pointer gefunden wird. (Für die globalen Destruktoren funktioniert es genauso, nachdem main terminiert hat.) Wenn keine Runtime-Initialisierung vom Linker zum Programm gebunden wird, werden diese Initialisierungen nicht ausgeführt. Die Runtime-Initialisierungsroutine wird vor main ausgeführt. Notfalls mußt du eben mal den Objektcode untersuchen und dir selbst sowas schreiben.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.