<<valle>> Geschrieben 29. März 2009 Geschrieben 29. März 2009 Hallo alle zusammen, ich hab folgendes Problem ich möchte eine .wav Datei abspielen mit diesem code: #include <windows.h> #include <stdio.h> #pragma comment(lib,"winmm.lib") BOOL play(char *name) { PlaySound(name, NULL, SND_FILENAME | SND_ASYNC); return 0; } int main() { play("test.wav"); getchar(); return 0; } doch mein compiler, ich benutzte Visual C++ 2008 , gibt mir immer den Fehler aus:'PlaySoundW': Konvertierung des Parameters 1 von 'char *' in 'LPCWSTR' nicht möglich Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat. kann mir jemand weiter helfen?? Vielen Dank im Voraus! valle Zitieren
Klotzkopp Geschrieben 29. März 2009 Geschrieben 29. März 2009 Fast alle WinAPI-Funktion, die Stringparameter haben, gibt es in zwei Formen. Eine endet auf A und benutzt char*-Parameter, die andere endet auf W und hat wchar_t*-Parameter. Der Name der Funktion ohne A oder W am Ende ist nur ein Präprozessorsymbol, das je nach Projekteinstellungen (Unicode- oder Multibytezeichensatz) entweder auf die A oder die W-Variante verweist. Der Parametertyp ist dann einn LP©TSTR. Das ist auch ein Präprozessorsymbol, das eben entweder auf LP©STR (char*) oder LP©WSTR (wchar_t*) verweist. Bei Visual C++ 2008 ist der Standard Unicode, nicht mehr Multibyte, d.h. alle WinAPI-Funktionen erwarten die wchar_t-Parameter. Du hast 4 Möglichkeiten: Stell die Projekteinstellungen von Unicode auf Multibyte.Ändere die Parameter von char auf TCHAR. Dann kannst du später beliebig zwischen Unicode und Multibyte wechseln.Ändere die Parameter von char auf wchar_t.Benutze ausdrücklich die A-Variante (PlaySoundA). 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.