![]() |
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:
iSize ist die größe eines records multipliziert mit der anzahl der kanäle.
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; 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? |
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