Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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).

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...