AGB  ·  Datenschutz  ·  Impressum  







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

[DLL] Procedure Deklarieren

Ein Thema von gsh · begonnen am 5. Aug 2006 · letzter Beitrag vom 5. Aug 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#1

[DLL] Procedure Deklarieren

  Alt 5. Aug 2006, 13:31
Hi DPler

Bin ich echt zu blöd um in einer DLL eine procedure zu deklarieren?
Also ich hab zwei proceduren in meiner DLL eine davon wird export und die andere nicht.

Ich muss eine davon deklarieren da sonst immer eine davon nicht gefunden wird, denn die eine ruft die andere auf und umgekert. Also wenn ich jetzt eine davon unter die andere schreib dann wird klarerweiße die andere nicht mehr gefunden. Naja kompliziert aber logisch

Hier mal mein Source:
Delphi-Quellcode:
library TestPlugin;

uses [..]

{$R *.res}

var
  PluginSend : procedure(Befehl : integer; Parameter : Pointer);

procedure PluginMain(Befehl : integer; Parameter : Pointer); stdcall;
begin
  case Befehl of
    BefehlToPlugin_PluginInit://PluginInit
    begin
      PluginSend := TPluginRecordToPlugin_PluginInit(Parameter^).PluginSend;
      ObserverAnmeldung; //<-- Wird nicht gefunden weil es unten steht
    end;
  end;
end;

procedure ObserverAnmeldung;
var
  TempPluginRecordToApp_PluginMain : TPluginRecordToApp_PluginMain;
begin
  TempPluginRecordToApp_PluginMain.PluginMain := PluginMain; //<-- Hier wird die PluginMain zwar gefunden aber nur weil diese procedure unten steht
  PluginSend(BefehlToPlugin_PluginFree*-1, @TempPluginRecordToApp_PluginMain);
end;

exports PluginMain;

begin
end.
Ich hoff ihr versteht mich
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: [DLL] Procedure Deklarieren

  Alt 5. Aug 2006, 13:37
exports PluginMain; Du exportierst ja auch nur eine. Üch würde dem export auch einen namen geben, wenn die cassensitive Procedure auch von anderen Sprachen genutzt werden soll.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#3

Re: [DLL] Procedure Deklarieren

  Alt 5. Aug 2006, 13:42
@mkinzler: Lies dir den ersten Post nochmal durch.

@gsh: Dazu gibt es den interface-Abschnitt . interface-Abschnitte gibt es jedoch wiederum nur in seperaten Units. Deine library-Datei besteht dann also nur noch aus uses und exports.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#4

Re: [DLL] Procedure Deklarieren

  Alt 5. Aug 2006, 13:45
Ja des ist mir klar des ich nur eine exportiere
Die andere will ich ja nicht exporiteren

Die procedure ObserverAnmeldung; soll nur in der DLL aufrufbar sein und dient der Übersicht.

//Nachtrag (dank roter box):
@Khabarakh: Meine DLL hat keinen interface abschnitt. und wenn ich interface hinschreib dann mag er des nicht. Des hät ich nämlich schon probiert
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: [DLL] Procedure Deklarieren

  Alt 5. Aug 2006, 13:47
Zitat:
@mkinzler: Lies dir den ersten Post nochmal durch.
Hätte ich die frage genauer gelesen hätte ich das eigentlich Problem gesehen
[edit: Warum verwendest du kein forward?]
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#6

Re: [DLL] Procedure Deklarieren

  Alt 5. Aug 2006, 13:52
@gsh: Editiert.

@mkinzler: Auch eine Möglichkeit. Wenn die Dll umfangreicher wird, würde ich trotzdem mit dem Auslagern anfangen.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#7

Re: [DLL] Procedure Deklarieren

  Alt 5. Aug 2006, 13:53
Zitat von mkinzler:
[edit: Warum verwendest du kein forward?]
Ein Forward? was ist das?

edit:
Zitat von Khabarakh:
@gsh: Editiert.

@mkinzler: Auch eine Möglichkeit. Wenn die Dll umfangreicher wird, würde ich trotzdem mit dem Auslagern anfangen.
Ja habs gesehen gesehen aber ich möchte diese Procedure nicht in eine Unit auslagern da sie imho dafür zu klein ist.
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: [DLL] Procedure Deklarieren

  Alt 5. Aug 2006, 13:54
Notier ObserverAnmeldung einfach vor PluginMain.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#9

Re: [DLL] Procedure Deklarieren

  Alt 5. Aug 2006, 13:56
Zitat von Chewie:
Notier ObserverAnmeldung einfach vor PluginMain.
Ja dann findert er aber in der Procedure ObserverAnmeldung die Procedure PluginMain nicht mehr
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: [DLL] Procedure Deklarieren

  Alt 5. Aug 2006, 13:56
Delphi-Quellcode:
procedure ObserverAnmeldung; forward;

procedure PluginMain(Befehl : integer; Parameter : Pointer); stdcall;
begin
   ...
end;

procedure ObserverAnmeldung;
var
  TempPluginRecordToApp_PluginMain : TPluginRecordToApp_PluginMain;
begin
...
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 08:40 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