Hallo,
ich habe eine Funktion in einer DLL die füllt mir einen Speicherbereich (pData) den die VB6 Anwendung bereitstellt mit Audio-Daten.
Deklaration in C++:
Code:
typedef long (__stdcall *GETBLOCKDATABYINDEX) (const unsigned long BufferIdx, const unsigned long dwStart, const unsigned long dwNbrOfBlocks, void* pData);
in VB6 deklariere ich wie folgt:
Code:
Private Declare Function GetBlockDataByIndex Lib "meine.dll" (ByVal BufferIdx As Long, ByVal dwStart As Long, ByVal NbrOfSamples As Long, ByVal pData As Byte) As Long
und aufgerufen wird es mit:
Code:
Dim pData() As Byte
... some Code ...
ReDim pData(SPB * 2) As Byte
For x = 0 To (SPB * 2)
pData(x) = 0
Next
... some Code ...
retCode = GetBlockDataByIndex(bufferindex, wpold, 1, pData)
wobei retCode, bufferindex, wpold als Long definiert wurden und beim debuggen sinnvolle Werte enthalten. Jedoch crasht VB beim Aufruf von GetBlockDataByIndex.