ich habe hier eine
dll welche in c geschrieben wurde vorliegen an welche ich audiodaten einer wave datei übergeben muss.
als input muss ich folgendes übergeben:
1.
handle of t_mystruct
2. pointer to buffer of 32-bit IEEE floats
3. length of buffer
int functionname(t_mystruct * a, float *data, int size);
meine übersetzung in delphi sieht wie folgt aus:
Tfunctionname = function(myRecord: PMyRecord; data: PSingle; iSize: integer): integer;
nun übergebe ich die daten wie folgt:
Delphi-Quellcode:
procedure ...
var
...
Char1 : Char;
...
begin
...
// position must be 44 because of header length
aFileStream.Position := 44;
iVal := 1;
while ival = 1 do
begin
aFileStream.Read(Char1, 1);
iVal := InstanceOfTFunctionname(aMystruct, @Char1, iSize);
end;
...
weitere berechnungen
end;
iSize ist die größe eines records multipliziert mit der anzahl der kanäle.
die übergabe scheint falsch zu sein,
da ich eine "invalid floating point operation" meldung bekomme bei weiteren berechnungen (in der
dll mit den hier übergebenen daten).
jemand ne idee wie man die reinen audiodaten der
dll übergibt?