Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Net Dll aus Win32 (https://www.delphipraxis.net/69952-net-dll-aus-win32.html)

hanspeter 22. Mai 2006 21:17


Net Dll aus Win32
 
Hallo,

ist es eigentlich möglich, eine .Net erstellte Dll aus Delphi win32 aufzurufen ?

Die Dll braucht als Parameter bestenfalls einen Parent und gegebenenfalls eine Datensatz ID. Ansonsten ist diese Dll aber völlig autark.

Also z.B. im Delphi - Programm ein Menüpunkt Kundenverwaltung , Artikelverwaltung u.s.w. aufgerufen wird eine NET-Dll.

Mit Gruß Peter

Dax 22. Mai 2006 21:19

Re: Net Dll aus Win32
 
Also eine .NET-Methode soll aus einem Win32-Programm benutzt werden? Bis jetzt gehts nur umgekehrt, über extern und [DllImport]... Eventuell kommt aber bald von einem bestimmten User ein DllExport-Attribut, damit könnts dann gehen ;)

MagicAndre1981 22. Mai 2006 22:11

Re: Net Dll aus Win32
 
Ja, das geht. Schau mal hier:

http://bdn.borland.com/article/0,1410,32754,00.html

André

Bernhard Geyer 22. Mai 2006 22:17

Re: Net Dll aus Win32
 
Managed extenstions for VCL

Dax 22. Mai 2006 22:20

Re: Net Dll aus Win32
 
Oh, ich dachte die altmodische Art über LoadLibrary und sowas.. :oops:

Phoenix 22. Mai 2006 22:24

Re: Net Dll aus Win32
 
Nope, die altmodische Art kann gar nicht möglich sein. Du müsstest ja erstmal die komplette .NET Runtime innerhalb Deiner Applikation laden, denn erst darin kann .NET Code ausgeführt werden.

COM ist da der richtige Weg.

jbg 22. Mai 2006 22:40

Re: Net Dll aus Win32
 
Zitat:

Zitat von Phoenix
COM ist da der richtige Weg.

Mit Delphi.NET geht es auch einfacher:

.NET
Delphi-Quellcode:
{$UNSAFE ON}
procedure MyDllFunction(Value: Integer);
begin
  MessageBox.Show('Hallo World!' + Value.ToString() );
end;

exports
  MyDllFunction;
Win32
Delphi-Quellcode:
procedure MyDllFunction(Value: Integer);
  external 'MyAssembly.dll' name 'MyDllFunction';

procedure Test;
begin
  MyDllFunction(10);
end;

hanspeter 23. Mai 2006 07:36

Re: Net Dll aus Win32
 
Zitat:

Mit Delphi.NET geht es auch einfacher:
Das mag sein.
Aber mit der Lösung möchte ich ja gerade von Delphi wegkommen, ohne alles sofort neu schreiben zu müssen.
Der Kern in Delphi. Dieser wird nicht mehr gepflegt.
Mit jeder notwendigen Programmrevision oder Erweiterung erfolgt die Umstellung auf C#.

Mit Gruß Peter

Bernhard Geyer 23. Mai 2006 08:22

Re: Net Dll aus Win32
 
Zitat:

Zitat von hanspeter
Der Kern in Delphi. Dieser wird nicht mehr gepflegt.
Mit jeder notwendigen Programmrevision oder Erweiterung erfolgt die Umstellung auf C#.

Ob das der richtige Migrationsansatz ist? Da der Kern nur auf Win32 basiert wirst Du deine neuen Teile nur so stricken können das auch diese von Win32 ansprechbar sind. Und damit wirst Du vermutlich einige Vorteile von .NET nicht verwenden können. Und dann nach einer Umstellung des Kerns auf .NET auch nochmal alles umzuschmeissen um es richtig zu machen ...
Ebenfalls hollst Du dir alle Nachteile von .NET und Win32 ins Programm.

Ich würde eher versuchen den Kern als ersters auf .NET neu zu designen und schauen wie Win32-Blöcke aufgenommen werden können.

hanspeter 23. Mai 2006 08:56

Re: Net Dll aus Win32
 
Zitat:

Zitat von Bernhard Geyer
Ich würde eher versuchen den Kern als ersters auf .NET neu zu designen und schauen wie Win32-Blöcke aufgenommen werden können.

Im Prinzip hast Du recht. Ich habe/hatte die gleichen Überlegungen.
Das Programm ist als Monolith aufgesetzt mit etwa 700.000 Quellzeilen im Kern und 528 einzelnen Dateien.
Wobei der Zusammenhang recht lose ist. Querverbindungen zwischen Modulen werden fast ausschließlich über die Datenbank (Firebird) realisiert.
Durch Reglementänderungen, Neuerungen u.s.w. bin ich jedes Jahr zu Anpassungen gezwungen. Bei solchen Gelegenheiten möchte ich dann die Migration vornehmen.
Im Moment baue ich gerade den Internetteil auf der Basis von ASP.Net neu.
Delphi kann ich schon aus dem Grund nicht verwenden, da Net2.0 nicht unterstützt wird.

Gruß Peter


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:02 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz