AGB  ·  Datenschutz  ·  Impressum  







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

DLL erste Gehversuche, Probleme

Ein Thema von sko1 · begonnen am 31. Mai 2017 · letzter Beitrag vom 1. Jun 2017
Antwort Antwort
sko1

Registriert seit: 27. Jan 2017
577 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#1

DLL erste Gehversuche, Probleme

  Alt 31. Mai 2017, 12:00
Delphi-Version: 10 Berlin
Hallo,

ich habe hier ein merkwürdiges Phänomen:
Eine DLL die ich erstellt habe, addiert 2 Integer:

Delphi-Quellcode:
library Meine_DLL;


uses
  System.SysUtils,
  System.Classes;

{$R *.res}

function addiere(zahl1, zahl2: integer): integer; stdcall;
begin
  result := zahl1+zahl2;
end;


exports
  addiere;

begin
end.

Ein Programm soll die Funktion verwenden:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

function addiere(zahl1, zahl2: integer): integer; stdcall;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
function addiere(zahl1, zahl2: integer): integer; stdcall;
  external 'Meine_DLL.dll';

procedure TForm1.Button1Click(Sender: TObject);
var
  e: integer;
  a, b: integer;
begin
  a := 13;
  b := 36;
  e := addiere(a, b);
  showmessage(e.ToString);
end;

end.

In der DLL kommt zahl1 = 13 und zahl2 = 53253984 an!

Hat jemand eine Idee?

Danke
Ciao
Stefan

Geändert von sko1 (31. Mai 2017 um 12:07 Uhr)
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.610 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: DLL erste Gehversuche, Probleme

  Alt 31. Mai 2017, 12:08
Deklarier die Funktion in der DLL auch mal mit stdcall; .
  Mit Zitat antworten Zitat
sko1

Registriert seit: 27. Jan 2017
577 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#3

AW: DLL erste Gehversuche, Probleme

  Alt 31. Mai 2017, 12:14
Hatte ich eben auch gesehen, das Problem bleibt!

Nein, Mist, nur Source ändern hilft hier nicht, ich muss, trotz dass ich im Debugger bin, die DLL erst neu erstellen lassen!

Und damit : Problem gelöst

Ciao
Stefan
  Mit Zitat antworten Zitat
SneakyBagels
(Gast)

n/a Beiträge
 
#4

AW: DLL erste Gehversuche, Probleme

  Alt 31. Mai 2017, 12:16
Wenn ich stdcall hinzufüge funktioniert es. Steht außerdem auch hier so beschrieben
https://www.delphi-treff.de/tutorial...pascal/dlls/4/
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.610 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: DLL erste Gehversuche, Probleme

  Alt 31. Mai 2017, 12:59
Hatte ich eben auch gesehen, das Problem bleibt!

Nein, Mist, nur Source ändern hilft hier nicht, ich muss, trotz dass ich im Debugger bin, die DLL erst neu erstellen lassen!

Und damit : Problem gelöst

Ciao
Stefan
Klar. DLL und Anwendung sind zwei unterschiedliche Projekte. Natürlich musst du bei jeder Änderung an der DLL diese auch neu kompilieren. Dafür kannst du aber auch Abhängigkeiten eintragen.
  Mit Zitat antworten Zitat
sko1

Registriert seit: 27. Jan 2017
577 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#6

AW: DLL erste Gehversuche, Probleme

  Alt 31. Mai 2017, 13:40
Ich habe eine Projektgruppe, welche die DLL und die benutzende Anwendung beinhaltet.

"Früher erstellen" bei der DLL habe ich angekreuzt, wenn ich aber mit F9 das Debugging der Anwendung starte werden eventuelle vorherige Änderungen im Code der DLL nicht wirksam, erst wenn ich da direkt bei der DLL auf Erstellen klicke!

Ciao
Stefan
  Mit Zitat antworten Zitat
bra

Registriert seit: 20. Jan 2015
711 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#7

AW: DLL erste Gehversuche, Probleme

  Alt 31. Mai 2017, 13:50
Früher/später erstellen in der Projektgruppe bezieht sich doch nur auf die Build-Reihenfolge, oder täusche ich mich da? Man muss dann ein Build/Compile All machen, damit auch alle Projekte erstellt werden.
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.610 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: DLL erste Gehversuche, Probleme

  Alt 31. Mai 2017, 14:17
Oder wie schon geschrieben einfach die Abhängigkeiten festlegen. Bei einem größeren Projekt mit mehreren DLLs wird das zwar schnell lästig, aber bei einem Testprojekt ist das machbar.
delphiabhaengigkeiten.png
  Mit Zitat antworten Zitat
sko1

Registriert seit: 27. Jan 2017
577 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#9

AW: DLL erste Gehversuche, Probleme

  Alt 1. Jun 2017, 08:12
Vielen herzlichen Dank!

Die Abhängigkeiten waren die Lösung!
Jetzt kann ich DLL-Code ändern und muss nur die aufrufende App starten, die DLL ist dann bereits auf neuem Stand

Ciao
Stefan
  Mit Zitat antworten Zitat
Antwort Antwort


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 03:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz