![]() |
Procedure in DLL Auslagern
Hallo
Ich möchte diese Procedure in eine DLL Auslagern ![]() Die Procedure selbst auszulagern war kein Problem aber die Typen Bezeichnung das das ID3Tag.Title ...... Funktioniert Krieg ich nicht hin Bitte hilfe |
Re: Procedure in DLL Auslagern
Wie wäre es dann, wenn du mal das was du bisher hast hier anhängst.
|
Re: Procedure in DLL Auslagern
Danke für die Rasche antwort
Habs gelöst. Habs so gemacht das ich einfach innerhalb der DLL kleine functionen Programmiert habe die dan die internen Variablen Exportieren |
Re: Procedure in DLL Auslagern
Heist das, du exportierst jetzt alle Daten einzelnd ?
|
Re: Procedure in DLL Auslagern
Ja
|
Re: Procedure in DLL Auslagern
Welche Meldung / welches Problem bekommst du denn, wenn du versuchst die Daten als TID3Tag zurück zu geben ?
Versuchs eventuell als packed record:
Delphi-Quellcode:
Type
TID3Tag = packed record ID: string[3]; Titel: string[30]; Artist: string[30]; Album: string[30]; Year: string[4]; Comment: string[30]; Genre: byte; dauer: longint; //in sekunden; sample: integer; bits: byte; vers: byte; layers: byte; end; |
Re: Procedure in DLL Auslagern
Dan bekomme ich die meldung das man TID3Tag nicht Exportieren kann
|
Re: Procedure in DLL Auslagern
Bei mir funktioniert es.
Delphi-Quellcode:
library Project1;
uses SysUtils, Classes; {$R *.res} type TID3Tag = record ID: string[3]; Titel: string[30]; Artist: string[30]; Album: string[30]; Year: string[4]; Comment: string[30]; Genre: byte; dauer: longint; //in sekunden; sample: integer; bits: byte; vers: byte; layers: byte; end; const MPEG_BIT_RATES : array[1..3] of array[1..3] of array[0..15] of word = { Version 1, Layer I } (((0,32,64,96,128,160,192,224,256,288,320,352,384,416,448,0), { Version 1, Layer II } (0,32,48,56, 64, 80, 96,112,128,160,192,224,256,320,384,0), { Version 1, Layer III } (0,32,40,48, 56, 64, 80, 96,112,128,160,192,224,256,320,0)), { Version 2, Layer I } ((0,32,48, 56, 64, 80, 96,112,128,144,160,176,192,224,256,0), { Version 2, Layer II } (0, 8,16,24, 32, 40, 48, 56, 64, 80, 96, 112,128,144,160,0), { Version 2, Layer III } (0, 8,16,24, 32, 40, 48, 56, 64, 80, 96, 112,128,144,160,0)), { Version 2.5, Layer I } ((0,32,48, 56, 64, 80, 96,112,128,144,160,176,192,224,256,0), { Version 2.5, Layer II } (0, 8,16,24, 32, 40, 48, 56, 64, 80, 96, 112,128,144,160,0), { Version 2.5, Layer III } (0, 8,16,24, 32, 40, 48, 56, 64, 80, 96, 112,128,144,160,0))); sample_rates: array[1..3] of array [0..3] of word= ((44100,48000,32000,0), (22050,24000,16000,0), (11025,12000,8000,0)); var ID3Tag: TID3Tag; procedure Lese_ID3Tag(Filename: string); var Buffer: array[1..128] of char; F: File; mp3hdrread: array[1..4] of byte; mp3hdr: longint absolute mp3hdrread; tempbyte, bitrateindex, versionindex: byte; bitrate, version, layer, groese: longint; begin AssignFile(F, Filename); Reset(F,1); groese:=filesize(f); blockread(f,mp3hdrread,4); tempbyte:=mp3hdrread[1]; mp3hdrread[1]:=mp3hdrread[4]; mp3hdrread[4]:=tempbyte; tempbyte:=mp3hdrread[2]; mp3hdrread[2]:=mp3hdrread[3]; mp3hdrread[3]:=tempbyte; reset(f,1); Seek(F,FileSize(F)-128); BlockRead(F, Buffer, SizeOf(Buffer)); CloseFile(F); bitrateindex:=((mp3hdr shr 12) and $F); versionindex:=((mp3hdr shr 19) and $3); case versionindex of 0: version:=3; 1: version:=0; //unbekannt 2: version:=2; 3: version:=1; end; layer:=4-((mp3hdr shr 17) and $3); if version<>0 then bitrate:=MPEG_BIT_RATES[version][layer][bitrateindex] else bitrate:=128; with ID3Tag do begin ID:=copy(Buffer,1,3); Titel:=copy(Buffer,4,30); Artist:=copy(Buffer,34,30); Album:=copy(Buffer,64,30); Year:=copy(Buffer,94,4); Comment:=copy(Buffer,98,30); Genre:=ord(Buffer[128]); sample:=sample_rates[version][((mp3hdr shr 10) and $3)]; dauer:=(groese*8) div ((bitrate)*1000); bits:=bitrate; vers:=version; layers:=layer; end; end; function GetIdTags(FileName: shortstring): TID3Tag; begin Lese_ID3Tag(FileName); result := ID3Tag; end; exports GetIdTags name 'GetIdTags'; begin end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:26 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