Erneut vielen Dank für eure Antworten.
> Es gibt oftmals auch ältere Versionen zu kaufen. (eBay und so)
Also die Version neu im Shop ist für mich als Privatperson dann doch zu teuer, vor allem für meinen Anwendungszweck. Neben der kleinen JSON-String-Anpassung gäbe es zwar noch 1-2 Kleinigkeiten, aber den Preis rechtfertigt es für mich dann leider nicht. Dazu funktioniert die Lösung mit Zwischenschritt zu gut. Im Forum hatte ich schon nachgelesen, dass ältere Lizenzen nur geringfügig im Preis verlieren und in einer kurzen Suche bei ebay.de/
com nichts direkt gefunden. Aber ich habe noch 1-2 Hoffnungen, die ich ansprechen kann. Ich möchte euch natürlich auch nicht zu viel Zeit kosten, nur weil die Software recht alt ist, ich kaum Ahnung von der Materie habe und für 2-3 Zeichen keine Unsummen ausgeben möchte.
> Hast du bisher nur das Plugin neu kompiliert oder auch das Hauptprogramm
Bisher nur das Plugin, das Hauptprogramm +
IDE stellt mich noch vor andere Probleme und da man die Plugins theoretisch einfach austauschen kann, wollte ich damit anfangen.
>Also klassische
DLl mit Exports oder
Com-Klassen
Ich nehme mal an Exports:
Delphi-Quellcode:
function LoadPlugin(var plugin: interface): WordBool; safecall; export;
begin
try
plugin := TGoogleCh.Create;
Result := True;
except
Result := False;
end;
end;
exports LoadPlugin name 'LoadPlugIn';
Durch die Debug-Anleitung, danke himitsu, ist das Programm früher als ich dachte gecrashed. Habe es über
Rad Studio gestartet und ein paar Projekteinstellungen angepasst, aber lief dann auch.
Delphi-Quellcode:
unit uGoogleCH;
interface
uses
// Delphi
Windows, SysUtils,
// RegEx
RegExpr,
// HTTP + Plugin
....
type
TGoogleCH =
class(TSearchPlugin)
protected { . }
const
SITE:
string = '
http://google.ch';
// ...
public
function GetName: WideString;
override;
{ ...sinnvolle Funktionen, die ich zur Einfachheit ignoriere...; } override;
end;
function TGoogleCH.GetName: WideString;
begin
Result := '
Google.ch';
// Breakpoint, 3x Einzelschritt F7 ab hier und es crashed: access violation
end;
Ich habe bei allen Funktionen einen Breakpoint in die erste Zeile gesetzt. Der erste Haltepunkt wurde bei GetName ausgelöst, was für mich sinnvoll erscheint. 3x F7 gedrückt, also drei Schritte weiter das Programm crashed. Leider habe ich ja bisher nur Plugins als Quellcode-Projekte laden können, sodass ich (noch) nicht exakt sagen kann, was der genaue Aufruf ist. Ich versuche mich noch ein bisschen daran, mehr Quellcode in das
RAD Studio laden zu können, vielleicht komme ich dann schon weiter.