ora però c'è un problema con questo codice:
codice:
void main()
{
// Define BE_CONFIG Structure:
BE_CONFIG bec;
bec.dwConfig = BE_CONFIG_MP3;
bec.format.mp3.dwSampleRate = 44100;
bec.format.mp3.byMode = BE_MP3_MODE_STEREO;
bec.format.mp3.wBitrate = 128;
bec.format.mp3.bCopyright = false;
bec.format.mp3.bCRC = false;
bec.format.mp3.bOriginal = false;
bec.format.mp3.bPrivate = false;
HINSTANCE hdll = LoadLibrary(DLL_NAME);
BEINITSTREAM beInitStream = (BEINITSTREAM) GetProcAddress(hdll,TEXT_BEINITSTREAM);
DWORD dwSamples = 1;
DWORD dwBufferSize = 4096;
HBE_STREAM hbe;
BE_ERR res = beInitStream(&bec, &dwSamples, &dwBufferSize, &hbe);
system("pause");
}
mi da errore: "Access violation" alla chiamata beInitStream() // inoltre prima quando facevo:
codice:
BEVERSION beVersion = (BEVERSION) GetProcAddress(hdll,TEXT_BEVERSION);
e chiamavo beVersion() mi appariva un "highlight" giallo con i parametri da passare, in questo caso no! ma non credo che sia un problema di casting della funzione:
codice:
typedef BE_ERR (*BEINITSTREAM) (PBE_CONFIG, PDWORD, PDWORD, PHBE_STREAM);
...
#define TEXT_BEINITSTREAM "beInitStream"
inoltre credo di aver passato bene i parametri alla funzione beVersion() come spiegato quì: http://www.fi.muni.cz/~qruzicka/Smid/man.htm