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 procedure einer dll in einer dll verwenden (https://www.delphipraxis.net/134927-procedure-einer-dll-einer-dll-verwenden.html)

youuu 1. Jun 2009 18:45


procedure einer dll in einer dll verwenden
 
Hi,

Ich besitze 2 dll's und möchte nun in einer die procedure einer anderen vewenden.
Jedoch funktioniert dies nicht, es gibt immer eine zugriffsverletzung.

Delphi-Quellcode:
Procedure SetOptimalGridCellWidth(sg: TStringGrid;   // Für Gird Spaltenbreite Bestimmmen
                                  ExcludeColumns: TExcludeColumns)stdcall; external 'grid.dll';
so hole ich mir die procedure aus der einen DLL in eine 2. DLL.

DeddyH 1. Jun 2009 18:48

Re: procedure einer dll in einer dll verwenden
 
Wenn ich mich recht entsinne, kann man einer DLL nicht einfach Objekte übergeben, dafür braucht es dann eine spezielle From, nämlich eine BPL.

himitsu 1. Jun 2009 18:54

Re: procedure einer dll in einer dll verwenden
 
Das Problem wird hier wohl nicht die DLL/Prozedur sein, sondern die VCL.

Die Objekte haben in jeder DLL ihre eigene RTTI und ihre eigenen Funktionen,
dann hat jede oftmals noch ihren eigenen Speichermanager.

Man kann also nicht einfach etwas von einer DLL/EXE in eine Andere transverrieren.


für alle bösen Buben ... in himXML hab ich mal sowas versucht (siehe DLLs) und es ist recht aufwendig und ich bin damit immernoch nicht fertig.

youuu 1. Jun 2009 18:56

Re: procedure einer dll in einer dll verwenden
 
Auch nicht wenn die DLL's in einem Projekt sind?

Ansonsten muss ich einefach die beiden Proceduren in ein und der selben Dll zusammen fassen.

himitsu 1. Jun 2009 19:01

Re: procedure einer dll in einer dll verwenden
 
neee, die DLLs/EXE sind ja dennoch eigenständige Module

höchstens mit BPLs geht sowas ordentlich

oder eben nur dann, wenn die Objekte selber nicht über Modulgrenzen hinweg bearbeitet werden und man nur anfragen mit "einfachen" Daten hin und her schickt.


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