• 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ź 200 wizyt
pytanie zadane 23 czerwca 2022 w C i C++ przez kuki_shin Użytkownik (620 p.)
0 głosów
1 odpowiedź 154 wizyt
pytanie zadane 23 czerwca 2022 w C i C++ przez kuki_shin Użytkownik (620 p.)

92,105 zapytań

140,763 odpowiedzi

317,744 komentarzy

61,424 pasjonatów

Advent of Code 2023

Top 15 użytkowników

  1. 590p. - Łukasz Eckert
  2. 584p. - Dawid128
  3. 575p. - CC PL
  4. 571p. - TheLukaszNs
  5. 552p. - nidomika
  6. 546p. - Michal Drewniak
  7. 544p. - Mikbac
  8. 539p. - Eryk Andrzejewski
  9. 537p. - 13NOONE37
  10. 536p. - Arkadiusz Waluk
  11. 533p. - Henry Saele
  12. 525p. - sefirek
  13. 522p. - adrian17
  14. 514p. - rucin93
  15. 505p. - Adrian Wieprzkowicz
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.

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!

...