Einzelnen Beitrag anzeigen

Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#1

Wave Audiodaten an C DLL übergeben

  Alt 23. Jun 2007, 17:32
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?
  Mit Zitat antworten Zitat