BobKiller007 Geschrieben 20. Januar 2009 Geschrieben 20. Januar 2009 Hallo alle miteinander, ich habe ein Problem: Ich habe in Dev-C++ ein Programm geschrieben, welches jedoch nicht funktioniert, da Dev-C++ extrem verbugt ist und ständig abstürzt. Also habe ich mir Microsoft Visual C++ 2008 Express Edition geholt. Jedoch gibt es irgendein Problem beim Kompillieren, den ich nicht verstehe. Wenn ich die .exe-Datei öffne, kommt diese hier: http://img129.imageshack.us/img129/9048/dieexedateigehtnichtuh9.jpg Hier nochmal der Programmiercode: #include <windows.h> #include <cstdlib> #include <iostream> using namespace std; int main(){ int welches; int nochmal; do{ cout << "Was moechten Sie hoeren? Ein fieses Lachen [1] oder einen grausamen Schrei [2] ?: \n"; cin >> welches; switch(welches){ case 1: PlaySound("dark.wav", NULL, SND_FILENAME | SND_ASYNC); break; case 2: PlaySound("large01.wav", NULL, SND_FILENAME | SND_ASYNC); break; default: cout << "Ungueltige Eingabe!\n"; break; } cout << "Programm neustarten um einen weiteren Sound zu hoeren ? [3=ja, 4=nein]\n"; cin >> nochmal; } while (nochmal==3); return 0; } Könnte mir jemand von euch helfen? Währ ganz nett von euch! Bitte Bescheid sagen, falls noch mehr Screenshorts nötig sind! Danke im voraus! MfG Boby Zitieren
Guybrush Threepwood Geschrieben 20. Januar 2009 Geschrieben 20. Januar 2009 Was hast du denn in Visual C++ für ein Projekt erstellt? Zitieren
Klotzkopp Geschrieben 20. Januar 2009 Geschrieben 20. Januar 2009 Hast du in C:\Windows\system32 eine Datei namens CMD.COM? Wenn ja, hast du dir einen Trojaner eingefangen. Zitieren
BobKiller007 Geschrieben 20. Januar 2009 Autor Geschrieben 20. Januar 2009 CLR-Konsolenanwendung. Davor habe ich es mit Win32-Konsolenanwendung versucht, aber das geht auch nicht. MfG Boby Zitieren
BobKiller007 Geschrieben 20. Januar 2009 Autor Geschrieben 20. Januar 2009 Sicher? Meinst du vielleicht eine dieser Dateien: http://img149.imageshack.us/img149/6977/system32cmdng2.jpg MfG Boby Zitieren
Guybrush Threepwood Geschrieben 20. Januar 2009 Geschrieben 20. Januar 2009 Die Systemdatei heißt cmd.exe, wenn du da wirklich eine cmd.com hast dann hast du wohl wirklich einen Troojaner und dann würde ich erstmal das System neu aufsetzten Zitieren
BobKiller007 Geschrieben 20. Januar 2009 Autor Geschrieben 20. Januar 2009 Solch eine Datei habe ich da nicht. Ich habe mal den Ordner "system32" gegen Viren überpfrüfen lassen und es wurde nichts gefunden. Aber was meinst du mit "System neuaufsetzen"? Zitieren
LadyPreis Geschrieben 20. Januar 2009 Geschrieben 20. Januar 2009 Aber was meinst du mit "System neuaufsetzen"? format c:\ Er meint damit, dass du auf deinem PC alles löschen und danach neu installieren sollst. Denn wenn ein Trojaner da ist, gibts es vermutlich noch mehr. Zitieren
Klotzkopp Geschrieben 20. Januar 2009 Geschrieben 20. Januar 2009 Ich verstehe nicht, warum da das 16-Bit-Subsystem angeworfen wird. Weder die Eingabeaufforderung (cmd.exe) noch dein Programm sind 16 Bit. Visual C++ 2008 kann gar keine 16-Bit-Programme erstellen. Durchsuch bitte mal alle Festplatten nach einer Datei names cmd.com. Zitieren
BobKiller007 Geschrieben 20. Januar 2009 Autor Geschrieben 20. Januar 2009 So, ich habe alle Fesplatten nach dieser Datei durchsucht und nichts gefunden. Woran könnte es noch liegen? Habt ihr Ideen? Braucht ihr irgendwelche Screenshots? Zitieren
Guybrush Threepwood Geschrieben 20. Januar 2009 Geschrieben 20. Januar 2009 Was passiert denn wenn du auf Start->Ausführen gehst und da cmd eingbist? Zitieren
BobKiller007 Geschrieben 20. Januar 2009 Autor Geschrieben 20. Januar 2009 Dann öffnet sich das hier ganz normal: http://img522.imageshack.us/img522/2293/startausfhrencmdao0.jpg Zitieren
Hexagon Geschrieben 20. Januar 2009 Geschrieben 20. Januar 2009 Quizfrage: Hast du das Projekt neu angelegt oder irgendwie importiert? Zitieren
BobKiller007 Geschrieben 20. Januar 2009 Autor Geschrieben 20. Januar 2009 Ich habe das Projekt neu angelegt und dann den Quellcode geschrieben. Dann habe ich es abgespeichert und Kompilliert. Zitieren
Guybrush Threepwood Geschrieben 20. Januar 2009 Geschrieben 20. Januar 2009 Hmm auf jeden Fall ist Win32 Konsolenanwendung der richtige Projekttyp... Zitieren
Amstelchen Geschrieben 20. Januar 2009 Geschrieben 20. Januar 2009 kommentiere doch bitte mal die zwei zeilen mit PlaySound aus, kompiliere das binary nochmals, und führe es aus. entweder hats da irgendwas, dass die library, in der PlaySound verdrahtet ist, über die NTVDM gestartet wird, oder dein system ist komplett hinüber. hattest du mal einen 16-bit-compiler auf der kiste? s'Amstel Zitieren
BobKiller007 Geschrieben 20. Januar 2009 Autor Geschrieben 20. Januar 2009 Ich weiß ehrlich nicht, woran es liegen könnte. Ich habe alles mögliche versucht, was mir eingefallen ist, da ich noch ein C++ Newbie bin, gabs da auch nicht so große Auswahl. Ich habe das Programm mit allen Codes und dazugehörigen Sounds hochgeladen. Könntet ihr es euch bitte angucken und wenn nötig umprogrammieren? Ich weiß nämlich nicht mehr weiter. Währ echt nett von euch! Hier der Donwload-Link: RapidShare Webhosting + Webspace MfG Boby Zitieren
BobKiller007 Geschrieben 20. Januar 2009 Autor Geschrieben 20. Januar 2009 Nein, einen 16 Bit-Compiler habe ich nicht. Aber es könnte auch an den Bugs von Dev-C++ liegen oder? Bitte ladet euch mal die Datei vom obigen Link runter. Zitieren
Klotzkopp Geschrieben 20. Januar 2009 Geschrieben 20. Januar 2009 Das Programm in dem Archiv wurde zwar mit Visual C++ 2008 erstellt, aber nicht aus diesem Quellcode. Es tut bei mir gar nichts, sondern beendet sich gleich wieder. Insbesondere benutzt dieses Programm nicht PlaySound, weil es nicht von WINMM.DLL abhängt. Der Quellcode hingegen ist mit diesen Projekteinstellungen gar nicht kompilierbar. Wenn man die Fehler behebt (vorkompilierte Header, fehlende Library, Wide Character Strings für PlaySound), lässt sich das Programm kompilieren. Wenn man dann noch die Sounddateien ins passende Verzeichnis steckt, funktioniert es. Woher bei dir die Fehlermeldung beim Ausführen kommt, kann ich mir nicht erklären. Ich fürchte aber, an deinem System ist etwas vermurkst. Zitieren
BobKiller007 Geschrieben 20. Januar 2009 Autor Geschrieben 20. Januar 2009 Hallöchen, ich glaube jetzt weniger, dass es an meinem System lag. Inzwischen kommt diese Fehlermeldung bei mir nicht mehr. Ich hatte irgendetwas verändert und seit dem kommt diese Meldung nicht mehr. Genau wie du es beschrieben hast ist's bei mir momentan auch, also das Programm öffnet sich und innerhalb von einer Sekunde (oder auch weniger^^) schließt es sich wieder. Damit das Programm von WINMM.DLL abhängt, muss ich es doch im Linker so einstellen oder? Wie gesagt, ich bin noch ein C++ Newbie und weiß wenig darüber. Ich glaube, dass dieses Programm, bzw. die Idee dieses Programms zu schwer für mich ist. Könntest du nicht einen Beispiel Code geben, wie mein Header aussehen sollte? MfG Boby Zitieren
Klotzkopp Geschrieben 21. Januar 2009 Geschrieben 21. Januar 2009 Genau wie du es beschrieben hast ist's bei mir momentan auch, also das Programm öffnet sich und innerhalb von einer Sekunde (oder auch weniger^^) schließt es sich wieder. Solange du das Programm gar nicht mehr neu erstellen kannst, ist es egal, was irgendeine alte Version macht, die noch im Debug-Ordner rumliegt. Wenn dein Projekt nicht gebaut werden kann, wird sich daran nichts ändern. Am Code ist eigentlich gar nicht viel falsch. Du hast in den Projekteinstellungen die Verwendung vorkompilierter Header und Unicode aktiviert, bzw. das ist die Vorgabe, wenn du kein leeres Projekt erstellst. Wegen der vorkompilierten Header musst du entweder die Projekteinstellungen ändern oder als erste Zeile #include "stdafx.h" in deinen Code schreiben. Außerdem musst du eines dieser drei machen:in den Projekteinstellungen von Unicode auf Multi-Byte stellen vor die Stringparameter von PlaySound ein L stellen statt PlaySound explizit PlaySoundA benutzen Und schließlich musst du noch entweder in den Linkereinstellungen winmm.lib angeben, oder das in den Code schreiben: #pragma comment( lib, "winmm.lib" ) Dann sollte das laufen. Zitieren
BobKiller007 Geschrieben 21. Januar 2009 Autor Geschrieben 21. Januar 2009 Hallo Klotzkopp, ich habe gemacht was du beschrieben hast, das Programm funktioniert jedoch immernoch nicht. Von 12 Fehlern und 3 Warnungen ist er auf 4 Fehler und 0 Warnungen gesunken. Fällt dir vielleicht noch etwas ein was man machen könnte? Dies kommt raus, wenn ich das Debugging starte: "Abspieler.exe": "C:\Dokumente und Einstellungen\emin\Desktop\Abspieler v0.1\Abspieler\Debug\Abspieler.exe" wurde geladen "Abspieler.exe": "C:\WINDOWS\system32\ntdll.dll" wurde geladen "Abspieler.exe": "C:\WINDOWS\system32\kernel32.dll" wurde geladen "Abspieler.exe": "C:\WINDOWS\WinSxS\x86_Microsoft.VC90.DebugCRT_1fc8b3b9a1e18e3b_9.0.30729.1_x-ww_f863c71f\msvcr90d.dll" wurde geladen Das Programm "[736] Abspieler.exe: Systemeigen" wurde mit Code 0 (0x0) beendet. MfG Boby Zitieren
Guybrush Threepwood Geschrieben 21. Januar 2009 Geschrieben 21. Januar 2009 Du kannst das Debugging nicht starten wenn die Exe durch Fehler nicht gebaut werden kann bzw wird dann die zuletzt erfolgreich erstellte Exe gestartet falls vorhanden. Wie wäre es denn wenn du die Fehler mal hier postest? Zitieren
BobKiller007 Geschrieben 21. Januar 2009 Autor Geschrieben 21. Januar 2009 Achso, also wenn ich das Kompillieren starte kommt dies hier: 1>------ Erstellen gestartet: Projekt: Abspieler, Konfiguration: Debug Win32 ------ 1>Kompilieren... 1>Abspieler.cpp 1>c:\dokumente und einstellungen\emin\desktop\abspieler v0.1\abspieler\abspieler\abspieler.cpp(1) : error C2859: c:\dokumente und einstellungen\emin\desktop\abspieler v0.1\debug\vc90.pdb ist nicht die pdb-Datei, die beim Erstellen dieses vorkompilierten Headers verwendet wurde. Erstellen Sie den vorkompilierten Header neu. 1>c:\dokumente und einstellungen\emin\desktop\abspieler v0.1\abspieler\abspieler\abspieler.cpp(1) : error C2859: c:\dokumente und einstellungen\emin\desktop\abspieler v0.1\debug\vc90.idb ist nicht die idb-Datei, die beim Erstellen dieses vorkompilierten Headers verwendet wurde. Erstellen Sie den vorkompilierten Header neu. 1>c:\dokumente und einstellungen\emin\desktop\abspieler v0.1\abspieler\abspieler\abspieler.cpp(21) : error C2664: 'PlaySoundW': Konvertierung des Parameters 1 von 'const char [9]' in 'LPCWSTR' nicht möglich 1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat. 1>c:\dokumente und einstellungen\emin\desktop\abspieler v0.1\abspieler\abspieler\abspieler.cpp(24) : error C2664: 'PlaySoundW': Konvertierung des Parameters 1 von 'const char [12]' in 'LPCWSTR' nicht möglich 1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat. 1>Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\emin\Desktop\Abspieler v0.1\Debug\BuildLog.htm" gespeichert. 1>Abspieler - 4 Fehler, 0 Warnung(en) ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ========== MfG Boby Zitieren
Klotzkopp Geschrieben 21. Januar 2009 Geschrieben 21. Januar 2009 Die ersten Fehler solltest du durch "Alles neu erstellen" / "Rebuild All" beseitigen können. Die anderen deuten darauf hin, dass du nicht alles umgesetzt hast, was ich geschrieben hatte. Welches dieser drei: -in den Projekteinstellungen von Unicode auf Multi-Byte stellen -vor die Stringparameter von PlaySound ein L stellen -statt PlaySound explizit PlaySoundA benutzen hast du denn gemacht? Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.