MediaPlayer Datei mit rc öffnen
-
wie man jetzt eine audiodatei (keine .wav) aus einer .dll datei starten kann!
Nein darum dreht es sich hier nicht. Es geht um eine Resource Datei nicht um eine DLL
-
eine dll ist eine resource datei!
nur halt in der EXE eingebunden!
-
Das ist kompletter Unsinn:
Eine *.rc Datei ist eine Resourcen Quelltextdatei, die durch den Resourcecompiler in eine *.res Datei compiliert wird. Die *.res kann in eine exe oder dll eingebunden werden. eine *.rc oder *.res hat also mir einer DLL nichts zu tun.
Umgekehrt kann eine DLL bestehen
- nur aus einer Resourcen-Datei
- nur aus Quellcode
- aus beidem
-
Lass ihn. Er machst sich selber lächerlich.
-
ok
-
KK!!
Aber könnt ihr mir sagen, wie ich jetzt diese scheiss wma datei abspielen kann (aus der .DLL oder .EXE??
-
oder .mp3
-
will mich da ja nicht einmischen, aber bei dem ganzen chaos steht nur zeug was keiner braucht zb. ärgern, ärgern, rechthaben wollen usw.
wenn ihr euch dann beruhigt habt, bitte eine antwort auf meine frage die ich vor eurer streiterei gestellt habe.
bitte, bitte
danke im voraus
mfg
-
Wie schon weiter oben gesagt versuche mal PlaySound statt sndPlaySound. Alternativ kann man natürlich auch erst die Daten aus der Ressource holen, temporär als Datei speichern und dann den Mediaplayer verwenden. So wie Rostfrei[] und akari es schon gesagt haben.
-
Aber wie soll ich diese sounddatei herausholen und woanders speichern??????
(NICHT DELPHI CODE)!
-
thx, habs geschafft
habs wie akari und Rostfrei[] gesagt haben gemacht.
entlich muss ich keine mp3 mehr bei einem game mitliefern

MFG
-
Hier noch mein Code zum Laden beliebiger Daten aus einer Ressource
//steht so oder so ähnlich in der rc-Datei MUSIK1 RCDATA "test.mp3" // Im Hauptprogramm um sich die Daten zu holen und in einer Datei zu speichern stringstream sstream; HRSRC rsrc = FindResource((int)HInstance, "MUSIK1",RT_RCDATA); if(rsrc) { DWORD Size = SizeofResource(HInstance , rsrc); HGLOBAL MemoryHandle = LoadResource(hdll,rsrc); if(MemoryHandle != NULL) { sstream << (char*)LockResource(MemoryHandle); ofstream file("test.mp3", ios::binary); file.write(sstream.str().c_str(), size); } } //jetzt nur noch die Datei laden und evtl. wieder löschen
-
Wenn du die Daten nicht auf Festplatte speichern willst, kannste auch FMOD verwenden. Das kann Dateien auch aus dem Speicher lesen.
-
Dein Code Funzt Nicht, erstellt zwar eine datei aber nur mit 33kb und die geht Nicht!!
-
Was steht denn in size? Ansonsten könnte man noch den stringstream rausschmeißen
if(MemoryHandle != NULL) { char* buffer = (char*)LockResource(MemoryHandle); ofstream file("test.mp3", ios::binary); file.write(buffer, size); }
-
Ich tippe eher drauf, dass DU nicht "funzt".
Aber ich denke auch, dass man auch die VCL benutzen sollte, wenn man sie schon zur Verfügung hat...
-
Du kannst ja noch den Code posten, damit beim nächsten Mal schon was fertiges im Forum steht.
Gruss
-
Das mit dem ResourceStream kannte ich noch nicht. Dann sieht der Code gleich viel übersichtlicher aus.
TResourceStream* rstream = new TResourceStream(HInstance, "MUSIK1","RT_RCDATA"); rstream->SaveToFile("test.mp3"); delete rstream;
-
Genau das meinte ich. Jetzt braucht "der Neue" auch nicht mehr zu meckern.
-
Wahrscheinlich wird auch das bei ihm nicht gehen