PlaySound sträubt sich



  • Bekommst du da einen Linker- oder Compilerfehler? (erkennbar an den Buchstaben vor der Fehlernummer (CXXXX, LNKXXXX))

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_playsound.asp

    Dort findest du nähere Hinweise zur Benutzung der Funktion. Wenn du einen Ton asynchron abspielst, kannst du ihn zum Beispiel durch erneuten Aufruf mit dem Flag SND_PURGE stoppen. Um damit aber genau die Länge deines Sounds zu bestimmen und nebenbei mit dem Programm fortzufahren, ist einiges an Aufwand erforderlich, um das Ganze zu synchronisieren, du solltest es also lieber die Sounds in passender Form gespeichert haben.


  • Administrator

    3 Fehler kommen dann:

    error C2065: 'SND_FILENAME' : undeclared identifier
    error C2065: 'SND_SYNC' : undeclared identifier
    error C3861: 'PlaySound': identifier not found, even with argument-dependent lookup

    aber mit mmsystem.h kommen die nicht 😉
    Als wäre in windows.h die Sache gar nicht definiert ...
    Grüssli



  • Hast du WIN32_LEAN_AND_MEAN definiert? Wenn ja, dann wegmachen 😉





  • Erhard Henkes schrieb:

    http://www.henkessoft.de/C++/MFC/mfc_einsteigerbuch_kapitel1_teil2.htm#PlaySound

    Also, zunächst fügen wir die Zeile #include <mmsystem.h> in die Header-Datei StdAfx.h ein. Seien Sie vorsichtig, damit Sie nichts zerstören

    😕


  • Administrator

    Jo jetzt seid ihr gefragt ^^ ... Ihr seid hier die Experten ... was muss man nun einfügen und wieso steht in der MSDN am einen Ort das man windows.h einfügen muss und an der anderen Stelle mmsystem.h? (find jetzt die Stelle nur mit dem mmsystem nicht mehr, aber es hat eine ^^) ...

    Zudem habe ich kein Win32_Lean_and_Mean definiert 😉 ...

    Aja und in der MSDN steht eigentlich am meisten nur windows.h ... Und da sagt mir einer noch die MSDN wäre gut! ... allerhöchstens ein leichtes Nachschlagewerk, wenn man nich mehr genau weiss wie was funktionierte, aber wenn man was ganz neues wissen will, so ist die MSDN ein Scheiss ... und die Suchfunktion der MSDN ist es auch ^^ ...
    Grüssli ^^



  • Ich hab bei der Benutzung der MSDN jedenfalls noch nie Anlass zur Beschwerde gehabt. Fakt ist jedenfalls, dass in meiner Version der windows.h folgendes steht:

    [cpp]
    #ifndef WIN32_LEAN_AND_MEAN
    #include <cderr.h>
    #include <dde.h>
    #include <ddeml.h>
    #include <dlgs.h>
    #ifndef _MAC
    #include <lzexpand.h>
    #include <mmsystem.h> << hui 🙂
    #include <nb30.h>
    #include <rpc.h>
    #endif
    #include <shellapi.h>
    #ifndef _MAC
    #include <winperf.h>
    #include <winsock.h>
    #endif
    #ifndef NOCRYPT
    #include <wincrypt.h>
    #include <winefs.h>
    #include <winscard.h>
    #endif

    #ifndef NOGDI
    #ifndef _MAC
    #include <winspool.h>
    #ifdef INC_OLE1
    #include <ole.h>
    #else
    #include <ole2.h>
    #endif /* !INC_OLE1 /
    #endif /
    !MAC /
    #include <commdlg.h>
    #endif /
    !NOGDI /
    #endif /
    WIN32_LEAN_AND_MEAN */
    [/cpp]

    und bei mir funktioniert das ohne Probleme, das ist aber wohl speziell in dem Fall eher eine Glaubensfrage, da mmsystem.h anscheinend gegen doppeltes Inkludieren gesichert ist. Bei vielen anderen von windows.h referenzierten Headerdateien kann es aber leicht zu Konflikten führen.


  • Administrator

    Meine sieht meiner Meinung nach gleich aus, wie deine *g*

    #ifndef WIN32_LEAN_AND_MEAN
    #include <cderr.h>
    #include <dde.h>
    #include <ddeml.h>
    #include <dlgs.h>
    #ifndef _MAC
    #include <lzexpand.h>
    #include <mmsystem.h> << öhm ^^
    #include <nb30.h>
    #include <rpc.h>
    #endif
    #include <shellapi.h>
    #ifndef _MAC
    #include <winperf.h>
    #include <winsock.h>
    #endif
    #ifndef NOCRYPT
    #include <wincrypt.h>
    #include <winefs.h>
    #include <winscard.h>
    #endif
    
    #ifndef NOGDI
    #ifndef _MAC
    #include <winspool.h>
    #ifdef INC_OLE1
    #include <ole.h>
    #else
    #include <ole2.h>
    #endif /* !INC_OLE1 */
    #endif /* !MAC */
    #include <commdlg.h>
    #endif /* !NOGDI */
    #endif /* WIN32_LEAN_AND_MEAN */
    

    tjo ... wo ist nun der Fehler? *g*
    Grüssli



  • Sicher, dass nirgendwo im Ganzen projekt LEAN_AND_MEAN definiert wurde? 🙂


  • Administrator

    ups ... aber etwas geht dann doch nicht auf ... deine Datei hat das auch und bei dir gehts ja anscheinend mit ... oder nicht?
    Grüssli


Anmelden zum Antworten