Vista != XP
-
Servus an alle Programierer,
ich hab einen Musikplayer programmiert. Der funktioniert aber nur auf Vista. Bei XP kommt gleich am Anfang eine Fehlermeldung, dass das Programm nicht ausgeführt werden kann. Wo ist da das Problem?
Hier könnt ihr den Sourcecode downloaden:
http://www.c-programmieren.com/musik.cDamit das Programm unter Vista funktioniert, muss man die libwinmm.a einbinden.
Ich weiß nicht, ob das das richtige Forum ist. Wenn nicht sorry.
Danke im Voraus,
Felix
-
Evtl. das hier?
http://www.c-plusplus.net/forum/viewtopic-var-t-is-132301-and-highlight-is-*2005*.html
-
Wie kann ich meine Anwendung mit der statischen CRT linken?
Ist das gemeint: #pragma comment( lib, "winmm.lib" )
-
Statische CRT meint, dass Du in den Projekteinytellungen von "Runtime-Library" von "irgendwas mit DLL" auf "irgendeas (ohne DLL)" umstellst.
-
Ich hab aber keine DLL eingebaut. Also ist es wohl ein anderes Problem, oder?
-
Nein
-
Wie kann ich das Problem dann lösen?
-
Du solltest herausfindes was die CRT ist, was statisches linken ist, und wie man das bei deinem compiler einstellt.
-
Was für ein Compiler?
-
Dev-Cpp
-
Das ist eine IDE. Benutzt du den GCC?
Wie lautet die Fehlermeldung, die du unter Windows XP erhältst, genau?
-
Benutzt Dev-Cpp nicht immer den selben Kompiler? Ja, ich glaube Gcc ist der Kompiler.
Fehlermeldung:
musikplayer.exe hat ein Problem festgestellt und muss beendet werden.
-
Lass es mal im Debugger laufen (falls Dev-Cpp das kann).
Oder hast du dir überlegt statt Dev-Cpp vielleicht auf Code::Blocks oder gleich Visual Studio Express umzusteigen? Mit beiden kannst du debuggen, und für Windows ist Visual Studio IMO sowieso die beste Wahl.
-
Der Debugger gibt folgende Fehlermeldung aus(bei XP):
An Access Violation(Segmentation fault) raised in your program.
Laut Übersetzung ist das eine Zugriffsverletzung. Was soll ich tun?
-
Gucken WO im Programm die access violation passiert ist, genau dafür ist der Debugger ja da.
Normalerweise öffnet die IDE automatisch das Source-File wo das Problem aufgetreten ist und springt in die entsprechende Zeile. Wenns ein Debug-Build ist solltest du auch den Inhalt der verschiedenen Variablen einsehen können. Die meisten Bugs kann man so sehr schnell festnageln.
-
Danke für eure Antworten. Ich hab den Fehler gefunden.(fclose an der falschen Stelle) Wenn ihr wollt, könnt ihr das Programm downloaden:
http://www.c-programmieren.com/musicplayer.exe
Ihr müsst nur den Pfad zu eurem Musikornder angeben und schon geht's los. Der Pfad sollte so oder so ähnlich ausschauen:
C:\\Musikordner\\Unterodner(also mit "\\")
(Das müsst ihr nur einmal machen. Der Pfad wird dann gespeichert.)Danke nochmal für eure Hilfe,
Felix