Deutsch
Forum

AudioGenie DLL

 

Georg
Hovenbitzer
Hallo zusammen,

nach längerer Abwesenheit meiner Person, muss ich euch direkt mal wieder mit einer Frage belästigen.
Von Stefan Töngi gibt es seit kurzer Zeit die AudioGenie DLL, vorher war es eine OCX die Dank Pascal unter Profan läuft.

Nun wollte ich versuchen diese DLL unter Profan 11.R6 zum laufen zu bringen, was mir nicht gelungen ist.
Es kommt kein brauchbares Ergebnis bei den Codes raus, angezeit sollte die Versionsnummer und eine 2 für eine gültige MP3 Datei.
Ich hänge mal meine verschiedenen Versuche an, vielleicht hat ja einer eine Idee.

1.Versuch
KompilierenMarkierenSeparieren
2. Versuch
KompilierenMarkierenSeparieren
Declare File$
Declare Dll&
Declare Tmp&
Cls
File$ = Test.mp3
Dll& = importDLL(AudioGenie2.dll, My_)
Print Handle = ,Dll&
Tmp& = My_GetAudioGenieVersion()
Print Version = ,Tmp&
Print oder so = ,@String$(Tmp&,0)
Tmp& = My_AUDIOAnalyzeFile(File$)
Print bei MP3 sollte 2 kommen = ,Tmp&
WaitInput
End

3.Versuch
KompilierenMarkierenSeparieren
Was klappt ist, sich alle Funktionen der DLL anzeigen zu lassen.
KompilierenMarkierenSeparieren
Die DLL findet ihr unter www.audiogenie.de hätte sich auch anhängen können, weiß aber nicht ob dies erlaubt ist.

Ich hoffe sehr ihr habt eine Idee und könnt mir weiterhelfen.
 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
06.06.2008  
 




Jörg
Sellmeyer
Versuch mal die Adressen von Strings zu übergeben:
KompilierenMarkierenSeparieren
Das hier gibt auch bei beiden Aufrufconventionen nichts brauchbares zurück?
KompilierenMarkierenSeparieren
Auch nicht:
KompilierenMarkierenSeparieren?
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
06.06.2008  
 




Georg
Hovenbitzer
Hallo Jörg,

diese Varianten habe ich auch schon alle probiert, da kommt nicht vernünftiges bei rum.
Seltsam ist es, dass vor dem Aufruf von AUDIOAnalyzeFile das PopUp Fenster der DLL kommt, also passiert ja was.
 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
06.06.2008  
 




Jörg
Sellmeyer
Ich werds heute abend mal testen.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
06.06.2008  
 




RGH
Hallo,

die DLL benutzt WideChar-Strings, bei denen jedes Zeichen 2 Bytes groß ist. Für den europäischen Zeichensatz bedeutet das, dass jedes Zeichen aus dem gewohnten Byte gefolgt von einem Null-Byte besteht. Das String-Ende wird durch ein doppeltes Null-Byte (zz) angezeigt. Ich habe mal zwei Prozeduren eingebaut, die die Umwandlung ganz ohne API vornehmen. So funktioniert Dein Programm:
KompilierenMarkierenSeparieren
BTW: MP3 hat die Kennziffer 1. Die 2 steht für WMA. Siehe hier: [...] 

Gruß
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
06.06.2008  
 




RGH
... und hier mal die etwas erweiterte Version mit ImportDLL, was sich hier anbietet und deutlich einfacher zu programmieren ist, als mit DEFs. Es werden jetzt auch Titel, Album und Interpret angezeigt:
KompilierenMarkierenSeparieren
Proc Str2WideChar

    Wandelt den Ansi-String Ansi$ in einen WideChar-String um
    Parameters Ansi$
    Declare Wide$

    WhileLoop 1, Len(Ansi$)

        Wide$ = Wide$ + Substr$(Ansi$, &loop) + z

    EndWhile

    Return Wide$

EndProc

Proc WideCharAddr2Str

    Ermittelt aus der Adresse eines WideChar-Strings buf&
    den entsprechenden Ansi-String
    Parameters buf&
    Declare I%, Ansi$, WChar$
    I% = 0
    WChar$ = Char$(buf&, I%, 2)

    While WChar$ <> zz

        Ansi$ = Ansi$ + Char$(buf&, I%, 1)
        Inc I%, 2
        WChar$ = Char$(buf&, I%, 2)

    EndWhile

    Return Ansi$

EndProc

Declare File$
Declare Dll&
Declare Tmp&
Cls
File$ = Str2WideChar(Test.mp3)
Dll& = @ImportDLL(AudioGenie2.dll, My_)
Print Handle DLL = ,Dll&
Tmp& = My_GetAudioGenieVersion()
Print Version =  + WideCharAddr2Str(Tmp&)
Tmp& = My_AUDIOAnalyzeFile(Addr(File$))
Print bei MP3 sollte 1 kommen = ,Tmp&
Tmp& = My_GetID3V1Album()
Print Album =  + WideCharAddr2Str(Tmp&)
Tmp& = My_GetID3V1Artist()
Print Artist =  + WideCharAddr2Str(Tmp&)
Tmp& = My_GetID3V1Title()
Print Title =  + WideCharAddr2Str(Tmp&)
WaitInput
FreeDLL Dll&
End

Gruß
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
06.06.2008  
 




Georg
Hovenbitzer
Hallo Roland,

was soll ich sagen, ES KLAPPT

Vielen Dank für die Hilfe, darauf wäre ich nie gekommen.
Ein gültiges MP3 gibt eine 1 zurück, ich hatte mich da vertan, aber bei mir kam sowieso immer 0.
 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
06.06.2008  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

1.615 Betrachtungen

Unbenanntvor 0 min.
Gast.0815 vor 15 Tagen
Tommy08.08.2021
Jörg Sellmeyer20.03.2020
Peter Max Müller13.12.2017
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie