Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi DLL-Problem - Die 2. (https://www.delphipraxis.net/1339-dll-problem-die-2-a.html)

CalganX 15. Nov 2002 17:13


DLL-Problem - Die 2.
 
Hi,
diesmal liegt das Problem in der DLL... Die DLL sieht wie folgt aus:
Delphi-Quellcode:
library Project2;

uses
  SysUtils, Dialogs, Menus, Forms,
  Classes;

function install(Syntaxmenu: TMenuItem): boolean; export;
var
  NewItem: TMenuItem;
begin
  try
    NewItem := TMenuItem.Create(Syntaxmenu);
    NewItem.Caption := 'TEST';
    NewItem.Visible := true;
    result := true;
  except
    result := false;
  end;
end;

exports
  install;

{$R *.res}

begin
end.
Wenn ich die DLL nun lade mit:
Delphi-Quellcode:
    DLLHandle := LoadLibrary(PChar(OpenDialog2.FileName));
  if DLLHandle <> 0 then begin
    InstFuncPtr := GetProcAddress(DLLHandle,'install');
    if InstFuncPtr <> nil then begin
      @InstFunc := InstFuncPtr;
      if InstFunc(Syntaxhighlighting1) then begin
        {...}
      end;
      InstFuncPtr := nil;
    end else ShowMessage('Plugin-DLL ist Fehlerhaft');
  end;
  FreeLibrary(DLLHandle);
Dann stürzt der mit Haufenweiser Ausnahmefehlern ab... Bis ich dann alles mit den Taskmanager beenden muss...

Chris

sakura 15. Nov 2002 17:20

Da die Delphi-Komponenten mit Ansi/Wide-Strings arbeiten, musst Du sowohl in der DLL als auch im Projekt selbst, die unit ShareMem einbinden.

Dann sollte es gehen.

CalganX 15. Nov 2002 17:28

Hm... Jetzt kommt wieder ein AF! Aber das ist ein anderer, als zuvor.

Chris

jbg 15. Nov 2002 18:30

Zitat:

Zitat von sakura
die unit ShareMem einbinden.

Und zwar als aller erste Unit.
Delphi-Quellcode:
uses ShareMem, Windows, Messages, SysUtils, Classes, ...

CalganX 15. Nov 2002 18:39

Hi,
supi jetzt kommt kein Error mehr...
Problem ist nur: Es wird kein Menü-Eintrag erstellt...

Chris

CalganX 15. Nov 2002 18:55

Ups.. Lag am falschen Menü... Das Problem ist nun: Wenn ich über das Parentmenü gehe, dann kommt ein Error...

Chris


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:00 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz