Sound abspielen + OPENFILENAME



  • Moin Leute!
    Also, ich hab folgendes Problem:
    Ich habe mir mit der WinApi ein Programm zusammengebastelt, dass einen
    (vom Benutzer) ausgewählten Sound (.wav) abspielt.
    Es soll ein "Datei öffnen" - Dialog angezeigt werden, in dem man eine Wav-Datei aussuchen kann:

    Codeschnipsel:

    BOOL PopFileOpenDlg (HWND window, PTSTR pstrFileName, PTSTR pstrTitleName)
    {
       ofn.hwndOwner = window;
       ofn.lpstrFile = pstrFileName;
       ofn.lpstrFileTitle = pstrTitleName;
       ofn.Flags = OFN_HIDEREADONLY | OFN_CREATEPROMPT;
    
       return GetOpenFileName (&ofn);
    
       PlaySound (GetOpenFileName (&ofn), NULL, SND_FILENAME);
    }
    

    Fehlermeldung:
    *'PlaySoundA' : Konvertierung des Parameters 1 von 'int' in 'const char ' nicht moeglich
    Die Konvertierung eines ganzzahligen Typs in einen Zeigertyp erfordert ein reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat

    Was mache ich hier falsch?



  • Hallo,

    es ist definitiv "schlechter Stil", unter zwei verschiedenen Namen die gleiche Frage, wenn auch leicht abgewandelt, zu stellen. Trotzdem:

    1. die Funktion PlaySound wird in deinem Code nie erreicht, davor steht ja ein return

    2. PlaySound erwartet den Dateinamen, GetOpenFileName gibt aber BOOL zurück, das kann nicht gehen. Vielmehr steht nach dem Aufruf von GetOpenFileName in der OPENFILENAME-Komponente ofn.lpstrFile der Dateiname, dieser ist an PlaySound zu übergeben

    3. Da du eine Funktion PopFileOpenDlg hast, ist es stilistisch nicht korrekt, hier den PlaySound-Aufruf zu machen. Erst sollte PopFileOpenDlg, dann PlaySound aufgerufen werden, mit ofn.lpstrFile als erstem Argument

    MfG


Anmelden zum Antworten