| |
|
|
Georg Hovenbitzer | Hallo zusammen,
ist es möglich unter Profan² OCX Dateien anzusprechen und deren Funktionen zu nutzen ? Insbesondere geht es mir um die AudioGenie2.ocx von Stefan Töngi [...] .
Leider habe ich bis dato noch keine alternative DLL gefunden die so viel kann wie diese.
Bei meinen Versuchen bekomme ich immer die Meldung Funktion in DLL nicht vorhanden.
Ich habe leider davon auch zu wenig Ahnung. |
|
|
| Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a) | 26.11.2006 ▲ |
|
|
|
|
Rolf Koch | Hi Georg, ich GLAUBE es könnte so funktionieren:
Definieren der in der OXC enthaltenen Funktionen def MP4Artist(1) !AudioGenie2.oxc,MP4Artist und so weiter also alles was Du benötigst - Parameter ja in der Hilfe
Laden der OXC: ocx&=usedll(AudioGenie2.oxc)
Aufrufen: artist$=MP4Artist(string$)
am Schluss entladen freedll oxc&
Ich glaube zumindest, dass es so funktionieren könnte. Kannst es ja mal versuchen. |
|
|
| |
|
|
|
Rolf Koch | Achso hast Du auch die Datei Wichtig.txt gelesen, von wegen OXC im System registrieren? |
|
|
| |
|
|
|
Georg Hovenbitzer | Hallo Rolf,
vielen danke für die schnelle Antwort.
Ich hatte folgendes versucht: KompilierenMarkierenSeparieren Dabei kommt der Fehler Funktion nicht in der DLL vorhanden. Diese Funktion gibt es, wenn man man mit einem HexEditor sucht. Aber ich komme einfach nicht dran. Die OCX habe ich vorher regsvr32 registriert. |
|
|
| Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a) | 26.11.2006 ▲ |
|
|
|
|
Frank Abbing | Probier mal dieses Tool von Andreas Miethe. Einfach die OCX-Datei auf das Icon der INC_Gen.exe ziehen. Im Ordner der OCX-Datei wird dann eine Inc-Datei generiert. Vielleicht hast du nur einen falschen Funktionsnamen angegeben... |
|
|
| |
|
|
|
Georg Hovenbitzer | Hallo Frank,
dieses Programm suchte ich Hat aber leider keinen Erfolg gehabt, es erkennt nur folgende Funktionen und warnt noch davor diese zu exportieren: KompilierenMarkierenSeparieren |
|
|
| Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a) | 26.11.2006 ▲ |
|
|
|
|
Frank Abbing | Hm, du könntest per GetProcAddress() die Adresse einer Funktion ermitteln und sie mit Call starten. Hier noch eine Beschreibung in VB: [...] |
|
|
| |
|
|
|
Georg Hovenbitzer | Hallo Frank,
folgendes habe ich mal: KompilierenMarkierenSeparierenDef GetProcAddress(2) !kernel32.dll,GetProcAddress
Def CreateThread(6) !kernel32.dll,CreateThread
Def WaitForSingleObject(2) !kernel32.dll,WaitForSingleObject
Def CloseHandle(1) !kernel32.dll,CloseHandle
Declare hModule&
Declare lProcAddress&
Declare FName$
Declare hThread&
Declare lpThreadId&
Declare lResult&
Cls
hModule& = @UseDLL(D:\Privat\Projekt_OCX\AudioGenie2.ocx)
Print hModule = + @Str$(hModule&)
FName$ = DllRegisterServer
lProcAddress& = GetProcAddress(hModule&,@Addr(FName$))
Print DllRegisterServer = + @Str$(lProcAddress&)
hThread& = CreateThread(0,0,lProcAddress&,0,0,@Addr(lpThreadId&))
Print hThread = + @Str$(hThread&)
lResult& = WaitForSingleObject(hThread&,0)
Print lResult = + @Str$(lResult&)
CloseHandle(hThread&)
#############
FName$ = AUDIOAnalyzeFile
lProcAddress& = GetProcAddress(hModule&,@Addr(FName$))
Print AUDIOAnalyzeFile = + @Str$(lProcAddress&)
FName$ = GetAudioGenieVersion
lProcAddress& = GetProcAddress(hModule&,@Addr(FName$))
Print GetAudioGenieVersion = + @Str$(lProcAddress&)
WhileNot %Key = 2
WaitInput
EndWhile
FreeDLL ocx&
End
Für DllRegisterServer wird eine ProcAdresse ewrmittelt, alle anderen Versuche scheitern. Ich komme einfach nicht an die Funktionen dran |
|
|
| Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a) | 27.11.2006 ▲ |
|
|
|
|
Frank Abbing | Hm, ich kenne mich mit dem Dateitypen nicht aus. Hab eigentlich keine Idee mehr dazu. |
|
|
| |
|
|
|
Uwe ''Pascal'' Niemeier | Hallo Leute!
Hab mal einen Blick reingeworfen... Soweit ich die Doku verstehe, geht es nicht um (API-) Funktionen, sondern um Methoden (also ne OLE/COM-Geschichte). Die notwendigen Definitionen liegen wahrscheinlich in der OCX selbst, sind aber nicht direkt zu lesen. Kennt sich hier jemand mit VB aus?? Ein Beispiel in C++ wäre hilfreich...
SeeYou Pascal |
|
|
| |
|
|
|
Georg Hovenbitzer | Hallo Pascal,
ich habe mal etwas gesucht, aber leider kein Demo gefunden. Im Forum von AudioGenie findet man nur eine Anleitung wie man die OCX unter Exel u.s.w. einbindet.
Es wird wohl nicht gehen |
|
|
| Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a) | 28.11.2006 ▲ |
|
|
|
|
Uwe ''Pascal'' Niemeier | Hallo Georg!
Eine Möglichkeit wäre die Verwendung der OCX per VBS (VisualBasic Script, läuft standartmässig auf jedem neueren Windows). So ein Script ließe sich per Profan anlegen und starten; mögliche Rückgaben müssten alllerdings vom Script in einer separaten Textdatei abgelegt werden, die wiederum von Profan ausgelesen wird. Habe auf diese Weise schon Routinen zum Durchsuchen von Outlook-Adressen entwickelt. Aber eine flüssige Nutzung ist so natürlich nicht drin
Falls ein VB-Kundiger unter uns ist, könnte der vielleicht eine Art Wrapper entwickeln...
SeeYou Pascal |
|
|
| |
|
|