Seite 1 von 1

[fertig]Was mach ich beim Ansprechen der abcAVI.dll falsch ?

Verfasst: 11.12.2005 01:22
von scholly
moin, moin...

Aus der abcAVI.dll-Doku:

Code: Alles auswählen

AVITags DLL has following functions declared in IExtendedAVITags interface: 

 · ReadAVITags - parse AVI file and places all the information into the container  
 · WriteAVITags - saves new tags and/or patches AVI header  
 · ErrorCodeToStr - provides the description of error code  
 · NewTagContainer - allocates memory for the new container  
 · GetInfo - extracts desired information from the container  
 · SetInfo - inserts the information in the container  
 · FccToStr - provides text representation of the FourCC  
 
AVITags DLL was written in Delphi, so all the function declarations made in Object Pascal. In spite of this AVITags DLL is language independent OLE Automation server. You can use it both in Delphi project and in the projects written in other COM supporting languages (C++, VisualBasic, VBScript and so on).
Ich hab dann folgenden Code gebastelt:

Code: Alles auswählen

;Check abcAVI.dll for functions

If OpenLibrary(0, "abcAVI.dll")
  Ergebnis = CountLibraryFunctions(0)
  Debug "Funktionszahl:   " + Str(Ergebnis)
  ReadAVITags.l = IsFunction(0, "ReadAVITags")
  Debug "ReadAVITags:  " + Str(ReadAVITags.l)
  WriteAVITags.l = IsFunction(0, "WriteAVITags")
  Debug "WriteAVITags:  " + Str(WriteAVITags.l) 
  ErrorCodeToStr.l = IsFunction(0, "ErrorCodeToStr")
  Debug "ErrorCodeToStr:  " + Str(ErrorCodeToStr.l)  
  NewTagsContainer.l = IsFunction(0, "NewTagsContainer")
  Debug "NewTagsContainer:  " + Str(NewTagsContainer.l) 
  GetInfo.l = IsFunction(0, "GetInfo")
  Debug "GetInfo:  " + Str(GetInfo.l)
  SetInfo.l = IsFunction(0, "SetInfo")
  Debug "SetInfo:  " + Str(SetInfo.l)
  FccToStr.l = IsFunction(0, "FccToStr")
  Debug "FccToStr:  " + Str(FccToStr.l)   
  CloseLibrary(0)
Else
    MessageRequester("Bad news:","abcAVI.dll couldn't be opened",#PB_MessageRequester_Ok)
EndIf
und DEBUG erzählt mir:

Code: Alles auswählen

Funktionszahl:   4
ReadAVITags:  0
WriteAVITags:  0
ErrorCodeToStr:  0
NewTagsContainer:  0
GetInfo:  0
SetInfo:  0
FccToStr:  0
Irgendwas mach ich doch flasch, aber was ?
total aufm Schlauch...
scholly

ps: Gibts 'n Smily für "aufm Schlauch stehen" ?

Verfasst: 11.12.2005 03:12
von spacewalker
Also wenn die funktionen tatsaechlich in der form in der dll enthalten sind... komisch.
Kannst du vielleicht den download link zu der dll und doks preisgeben ?

Verfasst: 11.12.2005 03:19
von scholly
spacewalker hat geschrieben: Kannst du vielleicht den download link zu der dll und doks preisgeben ?
http://abcavi.kibi.ru/developer.htm
schnarch...
scholly

Verfasst: 11.12.2005 04:38
von ts-soft

Verfasst: 11.12.2005 04:41
von edel
Das ist eine ActiveX Dll . Kannst du ueber ein Interface ansprechen.

Code: Alles auswählen

;regsvr32    "abcAVI.dll"
;regsvr32 /u "abcAVI.dll"

Interface IExtendedAVITags Extends IDispatch
  ReadAVITags(a,b,c,d,e,f,g,h)
  WriteAVITags(a,b,c,d,e,f,g,h,i)
  ErrorCodeToStr(a,b)
  NewTagsContainer(a)
  GetInfo(a,b,c,d,e,f,g)
  SetInfo(a,b,c,d,e,f,g,h)
  FccToStr(a,b,c,d,e)
EndInterface

OpenLibrary(0, "abcAVI.dll")

CoInitialize_(0)
If CoCreateInstance_(?CLSID_ABCAvi,0,1,?IID_ABCAvi,@object.IExtendedAVITags) = 0
  
  ;Debug object\ReadAVITags(a,b,c,d,e,f,g,h)
  
EndIf 

DataSection
CLSID_ABCAvi:
Data.l $18EC608A
Data.w $B23A,$11D6
Data.b $BE,$A5,$44,$45,$53,$54,$00,$02
IID_ABCAvi:
Data.l $18EC6088
Data.w $B23A,$11D6
Data.b $BE,$A5,$44,$45,$53,$54,$00,$02
EndDataSection
Das Interface und andere Sachen bekommst du mit einem Tool aus dem
englischem forum .

http://forums.purebasic.com/english/vie ... hp?t=11031


edit : grml zu lahm :-(

Verfasst: 11.12.2005 04:50
von ts-soft
hallodri hat geschrieben:edit : grml zu lahm :-(
Quatsch, vielleicht hab ich Ihn unterschätzt und er kann mit Deinen Infos was anfangen :wink:

Verfasst: 11.12.2005 14:47
von scholly
Mahhhlzeit :)....

@hallodri:
Hab mir den Interface-generator mal geholt:
"Da sitz ich nun, ich armer Tor und bin so klug als wie zuvor"
Trotzdem danke für den code-schnipsel, vielleicht kann ich da später mal drauf aufbauen.
ts-soft hat geschrieben:Quatsch, vielleicht hab ich Ihn unterschätzt und er kann mit Deinen Infos was anfangen :wink:
Hast Du nicht - in den 80ern hab ich mal in COBOL kurz reingeschnuppert und aufm Miggy hats nicht wirklich zu mehr als ARexx gereicht.
Und mit knapp Fuffzich is man auch manchmal etwas schwer von cape ;)

Aber vielleicht stolpert ja irgenwann mal jemand hier drüber, und hat Zeit und Lust, fürs CodeArchiv (Abteilung Music+Movie) ein Testfile mit der abcAVI.dll zu verwurschteln, sprich alle greifbaren Daten in eine Listbox zu schreiben. So ein Testfile (113 Kb) hatte ich mir schon gebastelt ;)

Für meinen aktuellen Bedarf werde ich jetzt mal alle möglichen Infos zu Audio- und Video-Tags und -File-Infos zusammensuchen und mit etwas Glück verstehen, wie ich mich durch die Files zu den Daten hangeln muß.

schönen Sonntag...
scholly