PlaySound Frage ...
-
aja ... ok ... ich gebs zu ... ich bin blöd
... sry ...
-
@C++Laie1: falls du ne alte Version der WinApi hast, da kann der Parameter noch ein LPCSTR sein.
-
wie alte version ? gibts da sogar noch unterschiede ?
-
Big Brother schrieb:
@C++Laie1: falls du ne alte Version der WinApi hast, da kann der Parameter noch ein LPCSTR sein.
Das hat nix mit der WinApi zu tun. Das kommt nur drauf an, was du in den Projekteigenschaften eingestellt hast. Entweder benutzt du Multibyte Character oder Unicode Caracter.
LPCTSTR gehört zu den Multibyte-Chars
LPCWSTR gehört zu den Unicode-Chars
-
Machine schrieb:
Big Brother schrieb:
@C++Laie1: falls du ne alte Version der WinApi hast, da kann der Parameter noch ein LPCSTR sein.
Das hat nix mit der WinApi zu tun. Das kommt nur drauf an, was du in den Projekteigenschaften eingestellt hast. Entweder benutzt du Multibyte Character oder Unicode Caracter.
LPCTSTR gehört zu den Multibyte-Chars
LPCWSTR gehört zu den Unicode-CharsDoch, hat es. Ich habe hier noch eine recht alte Doku, da gibt es für diesen Funktionsparameter keine andere Option als LPCSTR.
-
also ... folgendes ... unter MSVC++ lässt sich die Variante mit
PlaySound( L"al.wav" , NULL, SND_FILENAME | SND_ASYNC | SND_LOOP );
Linken und ausführen und er spielt sogar den sound ab ... gut ... aber in DEV C++
geht das nicht ... das is der Quelltext#include <windows.h> #include <stdio.h> #include <stdlib.h> int main() { PlaySound( L"al.wav" , NULL, SND_FILENAME | SND_ASYNC | SND_LOOP ); system("pause"); }
und das sind die Fehler
C:\Dokumente und Einstellungen\admin\Desktop\Mini.Haupt\Mini Win\sound.cpp In function `int main()': 9 C:\Dokumente und Einstellungen\admin\Desktop\Mini.Haupt\Mini Win\sound.cpp cannot convert `const wchar_t*' to `const CHAR*' for argument `1' to `BOOL PlaySoundA(const CHAR*, HINSTANCE__*, DWORD)'
tja ... und jetz ?
-
VisualStudio und DevCpp benutzen verschiedene Compiler. Das ist nicht einfach so übertragbar.
Am besten schaust du dir mal ein paar Grundlagen an, anstatt hier einfach irgendwelche Fragen zu stellen.BTW: DevCpp ist ziemlich veraltet. Wenn du VisualStudio hast, dann würde auch dabei bleiben.
-
C++Laie1 schrieb:
tja ... und jetz ?
Für DEV-CPP (steht in der Fehlermeldun was der Compiler will):
const char* my_wavefile = "C:\\Examplepath\\examplewavefile.wav"; if ( FALSE == PlaySound( my_wavefile , NULL, SND_FILENAME | SND_ASYNC | SND_LOOP ) ) puts ( "File not found." );
Für Visual Studio:
TCHAR my_wavefile = _T("C:\\Examplepath\\examplewavefile.wav");Wenn du SND_ASYNC verwendest, musst du irgendwie auf das Abspielen warten (getchar oder so), weil PlaySound sofort zurückehrt:
SND_ASYNC
The sound is played asynchronously and PlaySound returns immediately after beginning the sound. To terminate an asynchronously played waveform sound, call PlaySound with pszSound set to NULL.Das könnte dein kurzes Knacken erklären, weil das Programm zu Ende ist bevor du etwas richtig zu hören bekommst.
Gruß,
F.d.S.
-
Freund der Sonne schrieb:
const char* my_wavefile = "C:\\Examplepath\\examplewavefile.wav"; if ( FALSE == PlaySound( my_wavefile , NULL, SND_FILENAME | SND_ASYNC | SND_LOOP ) ) puts ( "File not found." );
DevCpp gibt dann den Fehler aus ...
[Linker error] undefined reference to `PlaySoundA@12'
-
Du musst die richtige Bibliothek einbinden.
-
ja das is ja sehr hilfreich ... es gibt einen ganzen pott davon ... welche denn ?
von MSVC++ kenn ich das#pragma comment(lib, "winmm.lib")
und bei Dev ?
-
Jeder Compiler bringt da seine eigene mit. Du kannst z.B. nicht mit dem Dev die Bibliotheken von VC benutzen, denn dann kommen solche Fehlermeldungen zustande.
-
F.d.S schrieb:
Jeder Compiler bringt da seine eigene mit. Du kannst z.B. nicht mit dem Dev die Bibliotheken von VC benutzen, denn dann kommen solche Fehlermeldungen zustande.
Machine schrieb:
VisualStudio und DevCpp benutzen verschiedene Compiler. Das ist nicht einfach so übertragbar.
-
Jeder Compiler bringt da seine eigene mit. Du kannst z.B. nicht mit dem Dev die Bibliotheken von VC benutzen, denn dann kommen solche Fehlermeldungen zustande.
Wat!? Stimmt mal überhaupt nicht.
Bei manchen Ausnahmefällen ist das so. Die Libs sind NICHT von Compiler (Eigentlich IDE) zu Compiler anders eingebunden.@C++Laie
Haste du auch schon versucht die andere Lib zu inkludieren...?
-
welche den ?
-
way schrieb:
Jeder Compiler bringt da seine eigene mit. Du kannst z.B. nicht mit dem Dev die Bibliotheken von VC benutzen, denn dann kommen solche Fehlermeldungen zustande.
Wat!? Stimmt mal überhaupt nicht.
Bei manchen Ausnahmefällen ist das so. Die Libs sind NICHT von Compiler (Eigentlich IDE) zu Compiler anders eingebunden.Da bist du schief gewickelt, es geht hier um die WinApi.