BASS w C++ Builder

0

Witam. Ten temat parokrotnie pojawiał się już na tym forum, jednak żaden nie rozwiązywał mojego problemu. Chodzi mianowicie o wykorzystanie biblioteki bass w C++ Builder 6. Testowałem tę bibliotekę na Dev C++ i działa bez zarzutu. Natomiast na BCB6 za chiny nie chce działać. Chodzi mi o wykorzystanie poniższego kodu np. w zdarzeniu jakiegoś przycisku OnClick, żeby program odtworzył mi dźwięk:

HSTREAM strumien;
   
        //inicjacja BASS'a
    if (!BASS_Init(-1, 44100, 0, 0, 0))  
        BASS_Init(0, 44100, 0, 0, 0); 
        
    }
   
    
    strumien = BASS_StreamCreateFile(false, "C:\\dzwiek.wav", 0, 0, 0);
    BASS_ChannelPlay(strumien, true);
    
do
{
    }while(BASS_ChannelIsActive(strumien));  
        BASS_Stop();
    BASS_Free();
        system("PAUSE");

Oczywiście zawarłem trzy pliki w katalogu, w którym znajduje się exe, mianowicie: bass.h, bass.dll, bass.lib. Dodałem plik nagłówkowy bass.h. Dodałem do projektu pliczek bass.lib. Kompiluję, wyskakuje mi błąd:
invalid OMF record, type 0x21 (possibly COFF)
No to użyłem programiku implib i przekonwertowałem w sposób następujący: implib.exe bass.lib bassbcb.lib
Dołączyłem do programu bassbcb.lib. Program uruchamia się, ale wyskakuje komunikat:
"Nie znaleziono punktu wejścia procedury _BASS_ChannelIsActive w bibliotece BASS.DLL"

Konwertowałem również w sposób jak jest w dokumentacji BASS: implib.exe bass.lib bass.dll , czego do końca nie rozumiem, ale wówczas wyskakuje mi taki komunikat:
"Aplikacja lub biblioteka DLL C:...\BASS.DLL nie jest poprawnym obrazem systemu Windows NT. Sprawdź to z dystkietką instalacyjną."
Czy jest w ogóle możliwe użycie BASS w BCB6, bo męczyłem się z tym dzisiaj cały dzień, starałem się podążać za przykładami w internecie, na tym forum (konwertowanie pliku COFF na OMF, oczywiście stosowałem również coff2omf.exe - bez skutku). Widocznie jest to możliwe, skoro jest napisane w dokumentacji BASS:
"To use BASS with Borland C++ Builder, you'll first have to create a
Borland C++ Builder import library for it. This is done by using the
IMPLIB tool that comes with Borland C++ Builder. Simply execute this:

IMPLIB BASSBCB.LIB BASS.DLL

... and then use BASSBCB.LIB in your projects to import BASS."
Tyle, że również tego pliku BASSBCB.LIB też nie mogłem znaleźć....
Naprawdę już nie wiem o co kaman. Może Wy mi pomożecie?
Z góry dzięki.

0

wiesz cp dzieki za ten post juz wiem jak to ma dzialac :)

wez skopjuj bass.h do katalogu include

nastepnie wez wypakuj gdzies do katalogu powiedzmy "X"

IMPLIB X\BASSBCB.LIB X:\BASS.DLL

o ile sie nie myle stworzy on plik LIB z podanego pliku DLL wystarczy dodac do projektu liba
i dac
#define BASSDEF(f) (WINAPI *f) // define the functions as pointers
#include "bass.h"
.... tylko cos mi nie dziala wywala ze Bass_init jest NULL :F

jestjeszcze cos takiego:

HINSTANCE bass=LoadLibrary("BASS.DLL"); // load BASS
BASS_Init=GetProcAddress(bass,"BASS_Init"); * get BASS_Init * tylko tutaj wywala sie [BCC32 Error] FC_OPENGL.cpp(8581): E2034 Cannot convert 'int (__stdcall *)()' to 'int (__stdcall *)(int,unsigned long,unsigned long,void *,const _GUID *)'
BASS_Init(-1,44100,0,hWnd,NULL); // call BASS_Init

z kolei tosamo wywala:

PFN_BASS_INIT BASS_INIT;

typedef int (WINAPI*PFN_BASS_INIT) (int target, unsigned long level, unsigned long internalformat, void * GLint, const _GUID * A);

HINSTANCE bass=LoadLibrary("BASS.DLL");

BASS_INIT=GetProcAddress(bass,"BASS_Init"); // E2034 Cannot convert 'int (__stdcall *)()' to 'int (__stdcall *)(int,unsigned long,unsigned long,void *,const _GUID *)'
BASS_INIT(-1,44100,0,hWnd,NULL);

1 użytkowników online, w tym zalogowanych: 0, gości: 1