dateien ausführen lassen
-
die stdio.h (.h!) ist drin
und ich arbeite mit dem veralteten Dev C++ (Ich nutzt das weil es sehr unkompliziert und kostenlos ist)durchs googeln hab ich nichts anständiges gefunden.
nur steig auf ein anderes Programm um Dev cpp ist veraltet.Gibt es eine alternative zu PlaySound ? ist mir all ****** egal hauptsache irgendetwas spielt dann ein gewähltes tönchen oder lied ab.
mit der alternative:
mciSendString("open file.mp3", NULL, 0, NULL); mciSendString("play file.mp3 wait", NULL, 0, NULL); mciSendString("close file.mp3", NULL, 0, NULL); (anwendungsbeispiel)kommt:
(aufgepasst)[Linker error] undefined reference to `mciSendStringA@16'ach was für ein wunder A@16.
ist das alles ein mist
-
Google
PlaySound MSDN eingeben
Erster Link anklicken
-> http://msdn.microsoft.com/en-us/library/ms712879.aspxGanz unten steht:
Library: Use Winmm.libAnders gesagt, du musst die
Winmm.libzu deinem Projekt linken, damit duPlaySoundverwenden kannst.<stdio.h>ist übrigens kein C++ Header, sondern ein C Header. In C++ heisst der<cstdio>.Gratis IDEs gibt es auch aktuellere:
- Code::Blocks
- Microsoft Visual Studio 2008 Express EditionDie Microsoft IDE ist vielleicht nicht ganz so einfach zu verstehen, bietet dafür einen extremen Umfang an Funktionen.
Code::Blocks sollte sehr leicht zu verwenden sein.ShellExecuteauf ein Soundfile öffnet einfach den Defaultplayer für dieses Soundfile, sofern alle Eingaben korrekt waren.@way,
Was soll das mitstdiozu tun haben??Grüssli
-
Hallo
Was soll das mit stdio zu tun haben??
Kommt das nicht aus stdio?
Mfg.
way
-
way schrieb:
Was soll das mit stdio zu tun haben??
Kommt das nicht aus stdio?
Tut mir Leid, aber da musste ich jetzt lachen

Die Funktion unterscheidet sich ja schon nur in der Schreibweise von Standardfunktionen.In
<cstdio>findest du die folgenden Funktionen:
http://www.cplusplus.com/reference/clibrary/cstdio/PlaySoundist ganz eindeutig eine WinAPI Funktion. Kannst du auch im Link nachlesen, den ich oben hingeschrieben habe (bzw. Copy&Paste aus der Browseradresszeile).Grüssli
-
Dravere schrieb:
...
Mal davon abgesehen, löst das Einbinden eines Headers i.d.R. keine undefinierten Referenzen auf.
-
das hab ich mir auch schon angesehen, aber irgendwie will es trotzdem nicht.
#include <cstdlib> #include <iostream> #include <windows.h> #include <string> #pragma comment( lib, "winmm.lib" ) #include <mmsystem.h> #include <stdio.h> #include <fstream> #include <conio.h> #include <cstdio> #include <sstream> #include <stdlib.h>das sind alles sachen die ich mit drin hab und wenn da was fehlen sollte informiert mich :(.
(natürlich hat dies Programm noch viele andere Funktionen, daher die vielen libs.
-
wenn du dev cpp mit mingw benutzt heisst die lib libwinmm.a
-
ähm ja ich nutze Dev cpp mit mingw.
aber bei#pragma comment( lib, "libwinmm.a" )geht es auch nicht oder mache ich hier wieder einen fehler ?
-
#pragma commentist kein Standard C++. Keine Ahnung ober das der MinGW Kompiler auch unterstützt. Am besten linkt man solche Dinge im Makefile, bzw. in der IDE in den Kompileroptionen zum Projekt. Aber ich hätte keine Ahnung, wo man dies unter DevCpp findet, da ich den nicht verwende.Grüssli
-
füg die lib mal in den projekteinstellungen dazu, mingw scheint pragma comment nicht zu unterstützen
edit: hab die neueste version, der mag das nicht
-
Kann mir jemand sagen wie man das bei Dev C++ 4.9.9.2 macht ich hab nähmlich keine Ahnung

-
guck mal im menü unter projekt und optionen, da müsste bei einem reiter drei textfelder sein, unten rechts ist da so ein button wo steht library zum projekt hinzufügen. (nicht sehr präzise, aber wirst es schon finden
)
-
IHR SEID GENIAL
freu
es gibt keinen Compiler fehler mehr und die Beschreibung reichte schon.. mal sehen ob es geht.
DANKE
EDIT:
Ich weiß zwar nicht warum aber zu hören ist nichts.installpath = instpa; for(;cond[1]!=1;) { if(song==1) { instpa += "\\data\\Music\\R1.wma"; ShellExecute(NULL, "open", instpa.c_str(), NULL, NULL, SW_SHOWNORMAL); cond[1]=1; } if(song==2) { instpa += "\\data\\Music\\R2.wma"; ShellExecute(NULL, "open", instpa.c_str(), NULL, NULL, SW_SHOWNORMAL); cond[1]=1; } if(song==1) { instpa += "\\data\\Music\\R3.wma"; ShellExecute(NULL, "open", instpa.c_str(), NULL, NULL, SW_SHOWNORMAL); cond[1]=1; } if(song!=1&&song!=2&&song!=3) { cout<<"ERROR [201] (1-3) eingabe erfolgt erneut"; MessageBox(NULL,"Error in Line 88 |code [201]","Syntax Error",MB_OK|MB_ICONERROR); cin>>song; } } PlaySound(instpa.c_str(), NULL, SND_FILENAME | SND_ASYNC);hier ein ausschnitt.
was ist denn nun falsch ? installpath = D:\\Runexe
also eigentlich richtig
zumindest ist das A@12 wegEDIT:
Ich hab vergessen, dass das nicht mit mp3 geht aber mitmciSendString(instpa.c_str(), NULL, 0, NULL); mciSendString(instpa.c_str(), NULL, 0, NULL);auch nicht
-
Wieso benutzt du eigentlich nicht eine moderne IDE wie Code::Blocks oder Microsoft Visual C++ Express? Die sind genauso kostenlos, aber aktueller und werden im Gegensatz zu Dev-C++ noch weiterentwickelt.
-
Tim06TR schrieb:
EDIT:
Ich hab vergessen, dass das nicht mit mp3 geht aber mitmciSendString(instpa.c_str(), NULL, 0, NULL); mciSendString(instpa.c_str(), NULL, 0, NULL);auch nicht
Hmmm, Dokumentationen sind wohl da, damit man sie ignorieren kann:
http://msdn.microsoft.com/en-us/library/ms709492.aspxAls Beispiel:
mciSendString("play C:\\test.mp3", 0, 0, 0);Falls das nicht funktioniert, dann wohl deswegen weil mciSendString nicht blockiert. Also musst du über die Callback möglichkeit arbeiten, damit das Programm erst beendet wird, wenn das Stück auch zuende ist.
Grüssli