Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Dlls (https://www.delphipraxis.net/10151-dlls.html)

maximi 12. Okt 2003 16:54


Dlls
 
Hallo!
Ich habe schon mehrere Tutorials zu dll durchgearbeitet und ich hab eigentlich auch alles verstanden. Nur ich bekomme es einfach nicht gebacken ne procedure, die in der dll steht, vom Form aus aufzurufen.
Vielleicht kann mir ja jemand ein kleines Bsp. zeigen, wie ich z.B. Button1.caption über die dll verändern kann???!!

Danke!!!!!!!!!!!
Max

Robert Marquardt 12. Okt 2003 17:25

Re: Dlls
 
Bitte lerne zuerst das Funktionen und Prozeduren eines Objekts Methoden heissen.
Sie sind im Prinzip das gleiche wie Elemente eines Records.
Ohne die Variable vom Record-Typ kannst du keine Elemente eines Records ansprechen.
Das ist fuer Methoden genau das Gleiche.

Luckie 12. Okt 2003 17:26

Re: Dlls
 
Wie hast du es denn bisher versucht?

Und welche hast du gelesen? das auch schon: http://www.luckie-online.de/tutorials/assarbad/

(Wenn du sie verstanden hast, aber es nicht schaffst sie anzuwenden, dann können sie ja nicht so gut gewesen sein.)

maximi 12. Okt 2003 17:31

Re: Dlls
 
das hast du gesagt!
ok, du kannst ja als "Wiedergutmachung" mir ja ein kleines Bsp. zeigen, wie ich z.B. Button1.caption über die dll verändern kann!!! ;))

Max

Luckie 12. Okt 2003 17:39

Re: Dlls
 
Zeig doch mal Code, wie du es bisher probiert hast und was nicht geht. Wenn du mit Strings arbeitest, mußt du ShareMem einbinden, das weißt du?

maximi 12. Okt 2003 17:52

Re: Dlls
 
so:


Delphi-Quellcode:

library Project1;

{ Wichtiger Hinweis zur DLL-Speicherverwaltung: ShareMem muss sich in der
  ersten Unit der unit-Klausel der Bibliothek und des Projekts befinden (Projekt-
  Quelltext anzeigen), falls die DLL Prozeduren oder Funktionen exportiert, die
  Strings als Parameter oder Funktionsergebnisse übergeben. Das gilt für alle
  Strings, die von oder an die DLL übergeben werden -- sogar für diejenigen, die
  sich in Records und Klassen befinden. Sharemem ist die Schnittstellen-Unit zur
  Verwaltungs-DLL für gemeinsame Speicherzugriffe, BORLNDMM.DLL.
  Um die Verwendung von BORLNDMM.DLL zu vermeiden, können Sie String-
  Informationen als PChar- oder ShortString-Parameter übergeben. }
 

uses
  SysUtils,
  Classes;

procedure TForm.Button1;stdcall
begin
  Form1.Button1.caption := 'asd';
end;

{$R *.res}

begin
end.

Luckie 12. Okt 2003 18:24

Re: Dlls
 
Wie lange hast du dafür gebraucht? Ich benötige alleine schon 10 Sekunden, um den Kommentar zu lesen. :roll:

wo ist die Klassen Definition zu Tform? Woher soll deine DLL Form1 kennen? Hast du gelesen, was der Kommentar zu Strings sagt?

maximi 12. Okt 2003 18:34

Re: Dlls
 
Also muss ich da auch noach
TForm1 = class(TForm) hinschreiben
oder wie?

Luckie 12. Okt 2003 19:11

Re: Dlls
 
Nun ja. Also ich würde sagen, beschäftige dich erstmal mit den Grundlagen, bevor du in die Windows Programmierung, speziell DLL's, einsteigst. Das verlangt nämlich schon einiges an Verständnis. Und deine Antwort zeigt mir, dass du noch erhebliche Lücken in den OOP Grundlagen hast und wie die VCL aufgebaut ist und funktioniert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:43 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