AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

EXE als DLL Ersatz denkbar?

Ein Thema von choose · begonnen am 3. Dez 2005 · letzter Beitrag vom 12. Dez 2005
 
schöni

Registriert seit: 23. Jan 2005
Ort: Dresden
445 Beiträge
 
Delphi 7 Personal
 
#13

Re: EXE als DLL Ersatz denkbar?

  Alt 9. Dez 2005, 15:13
Ich hab auch keinen Ansatz, oder doch, bloß funzen tut's nich.

Hier meine Bibliothek als EXE. Deshalb das Wort Pprogram, statt Library.

Delphi-Quellcode:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

procedure Proc1; stdcall;
begin
  writeln('Erste Prozedur aus der Bibliothek erfolgreich aufgerufen!');
end;

function AValue: Integer; stdcall;
begin
   Result := 4;
end;

procedure Ausgabe(AText: String; AValue: Integer); stdcall;
begin
   writeln(AText,AValue);
end;

exports
  Proc1 Index 1,
  AValue Index 2,
  Ausgabe Index 3;

begin
  { TODO -oUser -cConsole Main : Hier Code einfügen }
end.
Und hier die Anwendung, welche die Bibliothek verwendet:

Delphi-Quellcode:
program Project3;

{$APPTYPE CONSOLE}

uses
  ShareMem, System, SysUtils, SysInit, Windows;

type
  TFarProc = procedure(T: String; I: Integer);

procedure Proc1; stdcall external 'Project2.exeIndex 1;
function AValue: Integer; stdcall external 'Project2.exeIndex 2;
procedure Ausgabe(AText: String; AValue: Integer); stdcall external 'Project2.exeIndex 3;

var ProcHandle: FarProc;
    Proc: TFarProc;

begin
  { TODO -oUser -cConsole Main : Hier Code einfügen }
  HINSTANCE := LoadLibrary('Projct2.exe');
  ProcHandle := GetProcAddress(HINSTANCE,'Ausgabe');
  Proc := TFarProc(ProcHandle);
  Proc('Dieser Wert lautet: ', 100);
  Readln;
end.
Felermeldung von Windows:

PROJECT3 verursachte einen Fehler durch eine ungültige Seite
in Modul <Unbekannt> bei 00de:bff90777.
Register:
EAX=81dfba60 CS=81dfd04c EIP=bff90777 EFLGS=bff741f7
EBX=81d33e0c SS=bff7dafa ESP=81dfc048 EBP=0063ff6c
ECX=bff741f7 DS=0040 ESI=00000008 FS=bff7a567
EDX=00000000 ES=81d02000 EDI=81dde84c GS=bff7a10e
Bytes bei CS:EIP:

Stapelwerte:

Ich kann mir nicht erlklären, was ich falsch gemacht habe. Kann mir jemand helfen?

schöni
Damit der Topf nicht explodiert, lässt man es ab und zu mal zischen.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:28 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-2025 by Thomas Breitkreuz