Announcement

Collapse
No announcement yet.

FORM-DLL dynamisch laden...

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • FORM-DLL dynamisch laden...

    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

  • #2
    Wurde die DLL mit Packages kompiliert

    Comment


    • #3
      Hat sich erledigt, aber trotzdem danke

      Uw

      Comment


      • #4
        Wäre schön wenn Du uns sagst ob Du den Fehler gefunden hast, oder ob es sich erledigt hat, weil Du das Problem anders löst

        Comment

        Working...
        X