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

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
scholly
Beiträge: 793
Registriert: 04.11.2005 21:30
Wohnort: Düsseldorf

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

Beitrag 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" ?
Zuletzt geändert von scholly am 17.05.2008 17:09, insgesamt 2-mal geändert.
Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
Benutzeravatar
spacewalker
Beiträge: 48
Registriert: 15.07.2005 15:22
Wohnort: Stuttgart

Beitrag 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 ?
Ich liebe Asche und Rauch meiner Zigaretten.
Benutzeravatar
scholly
Beiträge: 793
Registriert: 04.11.2005 21:30
Wohnort: Düsseldorf

Beitrag 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
Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag 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 :-(
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
scholly
Beiträge: 793
Registriert: 04.11.2005 21:30
Wohnort: Düsseldorf

Beitrag 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
Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
Antworten