Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Wave Audiodaten an C DLL übergeben (https://www.delphipraxis.net/94577-wave-audiodaten-c-dll-uebergeben.html)

semo 23. Jun 2007 16:32


Wave Audiodaten an C DLL übergeben
 
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?

semo 23. Jun 2007 17:26

Re: Wave Audiodaten an C DLL übergeben
 
ok, habe das problem gefunden:
es werden daten im 16 bit format und nicht im 32 bit format übergeben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:45 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz