ich habe ein Projekt, das ich gerne nach Lazarus portieren würde. Es handelt sich um das Delphi SDK für virtualdub. Es dient dazu, Filter für das Videobearbeitungsprogramm virtualdub zu schreiben.
Dafür gibt es zwar ein SDK des Originalautors von virtualdub, das aber für die Sprache visual C/C++ konzipiert ist.
Nun hat im Jahr 2005 Fernando Reis freundlicherweise dieses SDK nach Delphi portiert und ich hatte das damals auch benutzt. Das ist aber nun schon eine Weile her. Nun würde ich gerne meine damaligen Projekte wieder überarbeiten. Und irgendwo auf meiner Systemplatte gibt es sicher noch ein altes Delphi 7. Aber es wäre doch viel schöner, das jetzt in Lazarus zu machen. Das gäbe dem SDK wieder ein neues Leben und würde auch Lazarus noch attraktiver machen.
Dieses Delphi SDK war früher auch im Internet zu finden. Seit vielen Jahren ist es jedoch nicht mehr auffindbar, so dass das erste, was ich tun muss, ist, diese Daten wieder zur Verfügung zu stellen. Ich nehme an, dass der Originalverfasser damit einverstanden ist, da er seine Arbeit ausdrücklich unter die GPL gestellt hat.
Leider ist eine direkte Verwendung in Lazarus nicht möglich. Eine Portierung nach Lazarus ist mir bisher nicht gelungen. Was getan werden muss, ist zunächst, eine unit namens VdFilter.pas in Lazarus zu compilieren. Die Datei befindet sich im Delphi SDK im Verzeichnis "include". Einige Dinge habe ich schon herausgefunden.
1. muss man vor "interface" eine Zeile "{$mode delphi}" einfügen.
2. muss man bei der Deklaration einer Prozedur vor "implementation" das "forward;" entfernen und
3. muss man wegen der Verwendung von Assemblercode irgendwo(?) die Compilerdirektive "{$ASMMODE intel}" einsetzen.
Dann läuft die Compilierung bis zur Zeile
Code: Alles auswählen
CALL DWORD PTR TFilterPreviewInterface([EAX]).SetButtonCallback; // Call function
Error: Asm: [call mem32] invalid combination of opcode and operands
An der Stelle musste ich dann endgültig passen.
Vielleicht kann ja jemand mit der Fehlermeldung etwas anfangen.