Hallo,
ich hab folgendes Problem:
In einer DLL ab ich ein (eigenständiges) Formular das über
folgende Schnittstellen-Funktionen vom Hauptprogramm aus gesteuert wird
<PRE>
library wunsch;
uses
SysUtils,
Classes,
frmwunsch in 'frmwunsch.pas' {frm_wunsch};
{$R *.RES}
function GetModuleCaption:Pchar;
begin
result := 'Wunschlistenverwaltung';
end;
procedure Execute;
begin
frm_wunsch := Tfrm_wunsch.Create(NIL);
frm_wunsch.ShowModal;
frm_wunsch.free;
end;
procedure Init;
begin
end;
Procedure Done;
begin
end;
exports
GetModuleCaption name 'GetModuleCaption',
Execute name 'DoExecute',
Init name 'DoInit',
Done name 'DoDeinit';
begin
end.
</PRE>
im Hauptprogram lade ich die DLL dynamisch zu:<BR>
<SCHNIPP><PRE>
HND := LoadLibrary(pchar(modfiles.strings[i]));
if (HND <> 0) then
begin
@GMC := GetProcAddress(HND, 'GetModuleCaption');
if (@GMC <> nil) then
begin
result.append(strpas(GMC));
modIDS[result.Count - 1] := I;
end;
FreeLibrary(HND);
end
else
Showmessage(SysErrorMessage(GetLastError));
</PRE>
</SCHNIPP>
Leider läuft er immer in den Else-Zweig (Fehlermeldung) und gibt mir die
sinnige Fehlermeldung "Ein an das System angeschlossenes Gerät funktioniert nicht." aus.
Woran kann das liegen ?
Gruß
Uwe
P.S. System WIN98SE Delphi5+UP1
ich hab folgendes Problem:
In einer DLL ab ich ein (eigenständiges) Formular das über
folgende Schnittstellen-Funktionen vom Hauptprogramm aus gesteuert wird
<PRE>
library wunsch;
uses
SysUtils,
Classes,
frmwunsch in 'frmwunsch.pas' {frm_wunsch};
{$R *.RES}
function GetModuleCaption:Pchar;
begin
result := 'Wunschlistenverwaltung';
end;
procedure Execute;
begin
frm_wunsch := Tfrm_wunsch.Create(NIL);
frm_wunsch.ShowModal;
frm_wunsch.free;
end;
procedure Init;
begin
end;
Procedure Done;
begin
end;
exports
GetModuleCaption name 'GetModuleCaption',
Execute name 'DoExecute',
Init name 'DoInit',
Done name 'DoDeinit';
begin
end.
</PRE>
im Hauptprogram lade ich die DLL dynamisch zu:<BR>
<SCHNIPP><PRE>
HND := LoadLibrary(pchar(modfiles.strings[i]));
if (HND <> 0) then
begin
@GMC := GetProcAddress(HND, 'GetModuleCaption');
if (@GMC <> nil) then
begin
result.append(strpas(GMC));
modIDS[result.Count - 1] := I;
end;
FreeLibrary(HND);
end
else
Showmessage(SysErrorMessage(GetLastError));
</PRE>
</SCHNIPP>
Leider läuft er immer in den Else-Zweig (Fehlermeldung) und gibt mir die
sinnige Fehlermeldung "Ein an das System angeschlossenes Gerät funktioniert nicht." aus.
Woran kann das liegen ?
Gruß
Uwe
P.S. System WIN98SE Delphi5+UP1
Comment