• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

C++ Builder 10.4 - Dźwięk w programie / Dodawanie bibliotek

Object Storage Arubacloud
0 głosów
201 wizyt
pytanie zadane 28 czerwca 2022 w C i C++ przez kuki_shin Użytkownik (620 p.)

Robię właśnie poradnik z Obiektowego C++ Zelenta (odc. 11)  i mam problem.

Przy funkcji sndPlaySound wyskakuje error: no matching function for call. Dałem #include "mmsystem.h" . Przeczuwam, że tej biblioteki nie mam w ogóle w komputerze, ale nie mam pojęcia jak ją dodać. 

Fajnie by było, gdyby ktoś napisał krok po kroku jak to zrobić i skąd najlepiej pobrać bibiotekę.

1 odpowiedź

+1 głos
odpowiedź 28 czerwca 2022 przez j23 Mędrzec (194,920 p.)
wybrane 8 lipca 2022 przez kuki_shin
 
Najlepsza

#include <mmsystem.h>

Pewnie też będziesz musiał dodać w opcjach projektu bibliotekę Winmm.lib.

komentarz 3 lipca 2022 przez kuki_shin Użytkownik (620 p.)
Możesz wytłumaczyć jak dodać tą bibliotekę Winmm.lib? Albo jakiś film na YT czy coś, bo nie mogę znaleźć
komentarz 3 lipca 2022 przez j23 Mędrzec (194,920 p.)

Daj pod include'ami #pragma comment (lib, "winmm.lib")

komentarz 5 lipca 2022 przez kuki_shin Użytkownik (620 p.)
Nadal ten sam błąd z sndPlaySound ://
komentarz 6 lipca 2022 przez j23 Mędrzec (194,920 p.)
Pokaż jak wywołujesz tę funkcję.
komentarz 7 lipca 2022 przez kuki_shin Użytkownik (620 p.)

Tu ona:

sndPlaySound("snd/start.wav", SND_ASYNC)  ;

A tu wszystkie includy:

#include <vcl.h>
#pragma hdrstop
#include <mmsystem.h>

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
#pragma comment (lib, "winmm.lib")

 

komentarz 7 lipca 2022 przez j23 Mędrzec (194,920 p.)

Używasz nowego C++ Buildera, który zapewne domyślnie używa unikodowych wersji funkcji systemowych.

Możesz zrobić tak:

sndPlaySoundA("snd/start.wav", SND_ASYNC);

/* lub */

sndPlaySoundW(L"snd/start.wav", SND_ASYNC);

/* lub */

sndPlaySound(TEXT("snd/start.wav"), SND_ASYNC);

Ostatni wariant nadaje się tylko do literałów tekstowych.

komentarz 7 lipca 2022 przez kuki_shin Użytkownik (620 p.)
Teraz jeszcze tylko pokazuje: use of undeclared identifier 'SND_ASYNC'
komentarz 7 lipca 2022 przez j23 Mędrzec (194,920 p.)

Dziwne, ta stała jest zdefiniowana w <mmsystem.h>, więc teoretycznie powinno się kompilować... Załącz przed wspomnianym plikiem <windows.h>.

Zakładam, że powyższe nagłówki załączasz w pliku, w którym jest wywołanie sndPlaySound.

komentarz 8 lipca 2022 przez kuki_shin Użytkownik (620 p.)
Nie mam pojęcia jakim cudem, ale a tym projekcie nie chce zadziałać, a w nowo zrobionym wszystko już działa. Dziękuję Ci bardzo, uratowałeś mnie.

Podobne pytania

0 głosów
1 odpowiedź 243 wizyt
pytanie zadane 23 czerwca 2022 w C i C++ przez kuki_shin Użytkownik (620 p.)
0 głosów
1 odpowiedź 230 wizyt
pytanie zadane 23 czerwca 2022 w C i C++ przez kuki_shin Użytkownik (620 p.)

92,556 zapytań

141,404 odpowiedzi

319,561 komentarzy

61,942 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...