AGB  ·  Datenschutz  ·  Impressum  







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

stdcall beim aufruf einer dll

Ein Thema von ReDoX · begonnen am 19. Feb 2005 · letzter Beitrag vom 19. Feb 2005
Antwort Antwort
ReDoX
(Gast)

n/a Beiträge
 
#1

stdcall beim aufruf einer dll

  Alt 19. Feb 2005, 12:42
Hi,
Ich habe mir einen wirklich kleine dll geschrieben.

Delphi-Quellcode:
library Mydll;

uses
  dialogs;

{$R *.res}

procedure MYMessage(text : string);
begin
 showmessage(text);
end;

exports
 MyMessage;

end.
So habe ich sie deklariert
 procedure MYMessage(text : string); stdcall; external 'Mydll.dll'; wenn ich sie jetzt aufrufe
 MyMessage('Hello world'); erscheint eine entstellte messagebox mit zeichen als text.
Deklariere ich sie hin gegen so
procedure MYMessage(text : string); external 'Mydll.dll'; geht alles ohne problem woran liegt das?

Mfg ReDoX
  Mit Zitat antworten Zitat
Benutzerbild von Rastaman
Rastaman

Registriert seit: 6. Jan 2005
Ort: Lübbecke
575 Beiträge
 
Turbo C++
 
#2

Re: stdcall beim aufruf einer dll

  Alt 19. Feb 2005, 12:44
Wahrscheinlich musst du die Prozedur auch in der Dll mit stdcall deklarieren oder
  Mit Zitat antworten Zitat
Benutzerbild von Ultimator
Ultimator

Registriert seit: 17. Feb 2004
Ort: Coburg
1.860 Beiträge
 
FreePascal / Lazarus
 
#3

Re: stdcall beim aufruf einer dll

  Alt 19. Feb 2005, 12:45
Du musst auch in der DLL stdcall; angeben

//edit: Wenn du es in beiden Fällen weglässt, wird allerdings automatisch stdcall register verwendet, hab ich ganz vergessen
Julian J. Pracht
  Mit Zitat antworten Zitat
Benutzerbild von Rastaman
Rastaman

Registriert seit: 6. Jan 2005
Ort: Lübbecke
575 Beiträge
 
Turbo C++
 
#4

Re: stdcall beim aufruf einer dll

  Alt 19. Feb 2005, 12:46
Lass mich raten, du hast keinen Hinweis bekommen, dass schon eine Antwort geschrieben wurde oder
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

Re: stdcall beim aufruf einer dll

  Alt 19. Feb 2005, 12:47
Eine Frage nebenher : Was bedeutet eigentlich stdcall ?
Michael
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: stdcall beim aufruf einer dll

  Alt 19. Feb 2005, 12:50
oder du lässt wie schon von dir geschrieben in beiden fällen das "stdcall" weg. Stdcall brauchst du eigentlich nur verwenden wenn die DLL auch von Programmen aus anderen Programmierpsrachen genutzt werden soll.

@Ultimator: Es wird nicht in beiden fällen Stdcall verwendet wenn man es weg lässt. Standardmäßig wird "register" verwendet. Wenn man in der Hilfe einfach mal "stdcall" eingibt bekommt man unter "stdcall (calling convention)" auch genaue informationen welche vorteile welche convention hat und da steht eben auch: "The default calling convention is register"

@Neutral General: "stdcall" ist einfach eine aufrufconvention welche Standardmäßig verwendet (wenn man DLL's publiziert). Wie schon geschrieben findet sich in der Hilfe eine genaue erklärung. Der unterschied zwischen den Aufrufkonvetionen liegt darin wo/wie die parameter abgelegt werden etc.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von tn249
tn249

Registriert seit: 18. Jan 2004
Ort: München
164 Beiträge
 
Delphi 2005 Personal
 
#7

Re: stdcall beim aufruf einer dll

  Alt 19. Feb 2005, 12:51
ein tutorial für dlls;

http://www.dsdt.info/tutorials/dlls/


zu beachten sind

1.die besonderheiten bei der übergabe von strings zwischen exe und dll
2.Groß-kleinschreibung ist wichtig bei dlls!

stdcall bezeichnet, dass die funktion auch aus zb einem c++ prog aufgerufen werden kann (und nicht nur delphi)

MfG
tn249
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat
Benutzerbild von phXql
phXql

Registriert seit: 11. Mär 2004
Ort: Mühldorf
824 Beiträge
 
#8

Re: stdcall beim aufruf einer dll

  Alt 19. Feb 2005, 12:56
stdcall ist eine art, wie die funktionen auf dem stack bzw registern gelegt werden, und wer die "aufräumarbeit" erledigt. Einfach mal in der OH nach stdcall suchen.
"Dunkel die andere Seite ist"
"Yoda! Halts Maul und iss deinen Toast!"
  Mit Zitat antworten Zitat
ReDoX
(Gast)

n/a Beiträge
 
#9

Re: stdcall beim aufruf einer dll

  Alt 19. Feb 2005, 13:37
Ahhh, danke für die Antworten.
Jetzt habe ich es verstanden.
Mfg ReDoX
  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 10:19 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