000
31.01.2009, 23:29 Uhr
~Dengue
Gast
|
Hallo, ich habe mal wieder seit einiger Zeit ein kleines Projekt in C++ geschrieben. Diesmal allerdings unter Vista. Ich habe dev C++ dafür genutzt. Kurz bevor ich mein Programm fertiggestellt habe, ist es zu einem Laufzeitfehler gekommen, den ich mir nicht erklären kann: ich habe eine Struktur angelegt und dann entsprechende Objekte im Main-Programm erstellt. Hier ein Quellcode-Ausschnitt von meinen Deklarationen:
C++: |
int main(int argc, char *argv[]) { stack *anker = NULL;
char *eingabe;
stack *p;
char operationen[9][5] = {{"+"},{"-"},{"*"},{"/"},{"abs"},{"neg"},{"inv"},{"sqr"},{"sqrt"}};
|
Damit läuft das Programm.
C++: |
int main(int argc, char *argv[]) { stack *anker = NULL;
stack *p;
char *eingabe;
char operationen[9][5] = {{"+"},{"-"},{"*"},{"/"},{"abs"},{"neg"},{"inv"},{"sqr"},{"sqrt"}};
|
Damit läuft es nicht. Sobald ich bei dem Pointer p und eingabe die Deklarationsreihenfolge ändere, kommt es zur Laufzeit mitten im Programm wahrscheinlich zu einem Speicherfehler und es schmiert ab. Auch wenn ich nicht weiß wieso, habe ich mich damit abgefunden. Das nächste ist jetzt aber, dass ich einem Freund, der jetzt auch das "gute" Vista auf seinem Laptop hat, die funktionierende .exe (also die Deklaration in der funktionierenden Reihenfolge) geschickt habe. Obwohl es bei mir läuft, schmiert es bei ihm ab. Nur unter XP läuft es bei ihm. Dann hat er mir ein Projekt, welches er in C und ohne spezielle Funktionen geschrieben hat, geschickt und Vista meldet bei mir, dass eine DLL fehlt. Mein Kumpel hat aber auch keine DLLs eingebunden.
Irgendwie scheint es da Probleme mit der C++ Runtime Environment für Vista zu geben, oder sehe ich das falsch? Es kann doch nicht sein, dass wir gegenseitig unsere Programme, die nur einfachste Ein- und Ausgaben, sowie nur ein paar mathematische Operationen beeinhalten, nicht mehr ausführen können. Kennt Ihr die Probleme und vielleicht auch eine Lösung?
MfG Dengue |