Hey,
Da ich selber am versuchen bin den Beispiel aus dem Wiki nachzubauen denke ich das hier ein guter Ort ist mit meinem Anliegen.
Das mit den Zugriffsverletzung hab ich auch und wollte daher mal nachhaken, ob es in der Zeit einen erfolgt gab?
Programmieren tu ich selbst mit Delphi.
Den Fehler konnte vorerst in der procedure PluginStart eingrenzen.
Allerdings frage ich mich wo da das Problem liegt.
procedure PluginStart(AOwner: TComponent); stdcall;
begin
form1 := TForm1.Create( AOwner );
form1.Show;
end;
Form1 ist noch recht nackig und beinhaltet keine Elemente.
Es ändert sich auch nichts daran wenn ich einfach irgendwas einfüge.
Beim erstellen der DLL kommt keine Fehlermeldung.
Kann es vielleicht an der Einstellung für das Form liegen oder ist einfach mein Delphi Version zu alt?
Einen plausiblen Grund hab ich sonst nicht.
Selbst für Lotus ist der Pluginstart und Pluginfinalize gleich.
So sieht es bei aus:
library Test;
uses
ShareMem,
SysUtils,
Dialogs,
Classes,
TestU in 'TestU.pas' {Form1};
{$R *.res}
procedure PluginStart(AOwner: TComponent); stdcall;
begin
form1 := TForm1.Create( AOwner );
form1.Show;
end;
procedure PluginFinalize; stdcall;
begin
form1.Free;
end;
procedure AccessVariable( varindex: word; var value: single; var write: boolean ); stdcall;
begin
end;
procedure AccessTrigger( triggerindex: word; var active: boolean ); stdcall;
begin
end;
procedure AccessSystemVariable( varindex: word; var value: single; var write: boolean );
begin
end;
procedure AccessStringVariable( varindex: word; str: PWideChar; var write: boolean );
begin
end;
exports
AccessVariable,
AccessTrigger,
AccessSystemVariable,
AccessStringVariable,
PluginStart,
PluginFinalize;
begin
end.
Alles anzeigen
unit TestU;
interface
uses
ShareMem, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
end.
Alles anzeigen
