Wpis z mikrobloga

#programowanie #audio #cpp

Używał ktoś może biblioteki BASS? Bo kompilator zwraca mi uwagę na pewną rzecz i trudno mi się mu dziwić trochę.

Przedostatni argument tej funkcji ma rzekomo typ WASAPIPROC:
http://www.un4seen.com/doc/#basswasapi/BASS_WASAPI_Init.html

Tylko jak sobie klikniemy na niego to ukazuje nam się funkcja, która zwraca DWORD:
http://www.un4seen.com/doc/#basswasapi/WASAPIPROC.html

No i kompilator oczywiście nie chce mi tego przyjąć. Co trzeba zrobić?
  • 80
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Khaine: na to wygląda, że używasz BASSa w innej wersji niż tej, do której odnosi się dokumentacja online. Najlepiej zrób tak: kliknij nad BASS_WASAPI_Init>w Visualu kliknij w menu kontekstowym "Go to Definition", potem najedź na WASAPIPROC, intelisense pokaże ci cały prototyp funkcji, jeśli nie to kliknij ponownie "Go to Definition", otworzy się plik *.h, a w nim pewny prototyp WASAPIPROC.

Nie zapominaj, że użycie BASS
a do użytku komercyjnego
  • Odpowiedz
@JoeBlade: W Qt to robię i wiem, że komercyjny BASS jest płatny, ale nie robię tego komercyjnie.

Nawet kompilator Qt mi przy błędzie mówi, że to jest typ: WASAPIPROC (__cdecl *). Takiej funkcji w ogóle nie ma w tych bibliotekach, bo mi przy próbie wpisywania WASAPIPROC w deklarację nie podpowiada nic innego niż te dwie co są w dokumentacji.
  • Odpowiedz
@JoeBlade: Znalazłem funkcję co ma typ WASAPIPROC i takie same argumenty jak tamten callback, ale nie ma jej w dokumentacji. Zrobiłem tak:

WASAPIPROC CALLBACK Recorder(void *buffer, DWORD length, void *user);

Może ruszy.

No teraz mi mówi o tej funkcji, że zwraca funkcję... I to prawda, bo WASAPIPROC to funkcja a nie typ zmiennej.
  • Odpowiedz
@JoeBlade: Notepadem otworzyłem, żeby zobaczyć co jest w środku i jest tylko to:

typedef DWORD (CALLBACK WASAPIPROC)(void *buffer, DWORD length, void *user);

Zaś to robi
  • Odpowiedz
@psychob: Hmm no tak, funkcja statyczna nie ma właściciela konkretnego. Za to teraz wracam do problemów z załączaniem bibliotek do Qt ehh... Znowu nie widzi.
  • Odpowiedz
@psychob:

LNK1181: cannot open input file 'basswasapi.lib'

Już na różne sposoby załączałem i uruchamiałem Qmake, nadal nie widzi przy kompilacji.
  • Odpowiedz