Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Meine erste Butterfahrt - Eine dll mit dem BCB erstellen (https://www.delphipraxis.net/147437-meine-erste-butterfahrt-eine-dll-mit-dem-bcb-erstellen.html)

Jaynder 19. Feb 2010 13:57

Re: Meine erste Butterfahrt - Eine dll mit dem BCB erstellen
 
Auf so ziemlich alles: Parameterreihenfolge auf dem Stack, verwaltet die Prozedur oder der Caller den Stack usw. Das läuft in C alles ziemlich anders als unter Delphi. Das Wiki Aufrufkonvention gibt einen schnellen Überblick. War jedenfalls eher Zufall, dass es mit dem einfachen double funktioniert hat.

Für WinAPI-Calls musst du z.B. immer stdcall nehmen.

Die Methode mit den Pointertypen und dem $T+ kann ich dir übrigens sehr empfehlen, erspart eine Unmenge an harten Crash's wegen falscher Typen, sobald du mehr als zwei bis drei Calls verwenden musst. Die Delphi-Calls ans WinAPI sind jedenfalls auch so umgesetzt.

Na, nun gutes Gelingen bei deinem Projekt.

Jürgen

messie 10. Mär 2010 15:42

Re: Meine erste Butterfahrt - Eine dll mit dem BCB erstellen
 
Upps,

jetzt bin ich auf die Nase gefallen (borlndmm.dll nich gefunden). Warum fragt die Anwendung denn zu Beginn nach dem Borland-Speichermanager? Das sollte eigentlich doch nur sein, wenn man Borland-spezifische Sachen wie Strings benutzt...

Liegt das daran, dass ich VCL in der dll benutze? Ich fange Exceptions in der dll ab, könnte das die Ursache sein?

Grüße, Messie

Edit: hat sich erledigt. Ich hatte zwar die Linkeroption "dynamische RTL verwenden" im Programm abgewählt, im dll-Projekt stand es aber noch drin. Das hätte der dll-Wizard eigentlich für mich erledigen sollen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:14 Uhr.
Seite 3 von 3     123   

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