• 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

Hosting forpsi easy 1 pln
0 głosów
165 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,340 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,340 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,340 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,340 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,340 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ź 201 wizyt
pytanie zadane 23 czerwca 2022 w C i C++ przez kuki_shin Użytkownik (620 p.)
0 głosów
1 odpowiedź 155 wizyt
pytanie zadane 23 czerwca 2022 w C i C++ przez kuki_shin Użytkownik (620 p.)

92,125 zapytań

140,785 odpowiedzi

317,805 komentarzy

61,446 pasjonatów

Advent of Code 2023

Top 15 użytkowników

  1. 1468p. - Łukasz Eckert
  2. 1444p. - Dawid128
  3. 1430p. - CC PL
  4. 1419p. - rafalszastok
  5. 1418p. - Marcin Putra
  6. 1373p. - Mikbac
  7. 1362p. - rucin93
  8. 1351p. - sefirek
  9. 1325p. - Michal Drewniak
  10. 1296p. - Adrian Wieprzkowicz
  11. 1267p. - Eryk Andrzejewski
  12. 1260p. - TheLukaszNs
  13. 1239p. - JarekDev
  14. 1188p. - Rafał Trójniak
  15. 1179p. - 13NOONE37
Szczegóły i pełne wyniki

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.

Uwaga - w dniach od 02.12 do 08.12 trwają Mikołajki (książki drukowane mają rabat -35%, ebooki do -45%). Zaś dodatkowy, specjalny kod zniżkowy: HELMIKOLAJ-10 dla naszych Widzów zapewni Wam oszczędność -10zł dla zamówień powyżej 70zł! Warto korzystać!

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...