Autor Beitrag
eraser_seb
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 41



BeitragVerfasst: Do 10.06.10 12:25 
Hi leute.
folgendes problem: Ich will eine dll schreiben in VC# und einegige Funktionen davon mit Delphi aufrufen. Delphi Funktionsaufruf kein prob.

Aber wie sage ich VC# das die funktionen "veröffentlicht" werden sollen. Ich kann nähmlich nicht aus mein Delphi Programm auf die dll funktionen zugreifen.

Also wie könnte da der Quellcode aussehen. In der vc# dll?

Danke euch


Moderiert von user profile iconChristian S.: Topic aus WinForms verschoben am Do 10.06.2010 um 13:14
Moderiert von user profile iconKha: Topic aus Sonstiges (.NET) verschoben am Fr 11.06.2010 um 20:36
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Do 10.06.10 13:50 
Du solltest deine NET Assembly als COM Komponente veröffentlichen. Siehe hier in der Hilfe und dann die Funktionalität über die COM Schnittstelle von Delphi aus benutzen.
eraser_seb Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 41



BeitragVerfasst: Do 10.06.10 14:05 
Hi danke für die Antwort.

Naja ist ja relativ kompliziert. Gehts denn nicht einfacher?
weil Com ist ja wieder etwas anderes als eine einfache Dll.
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Do 10.06.10 14:23 
~einfach~ ist relativ. In dem Sinne ist eine Assembly bereits keine einfache dll. Man kann es aber auch anders herum sehen. Die Assembly muss in ein der CLR Runtime laufen ein ~einfacher~ Prozess reicht da nicht aus. Du könntest natürlich versuchen in deinem Delphi Prozess die CLR Runtime zu hosten und dann die Assembly in die CLR Runtime zu laden um dann über irgendwelche trickigen Mechanismen wiederum versuchen die managed unmanaged Grenze zu überwinden. Da ist die meiner Meinung nach die ~einfache~ COM Methode doch am sinnvollsten.
eraser_seb Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 41



BeitragVerfasst: Do 10.06.10 15:05 
Naja ich wollte ja direkt auf die dll zugreifen aus Delphi. Weil naja die com muss mann ja immer wieder registrieren wenn man das Programm dann auf anderen Rechnern zum laufen bringen will.

Oder
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Do 10.06.10 20:46 
user profile iconeraser_seb hat folgendes geschrieben Zum zitierten Posting springen:
folgendes problem: Ich will eine dll schreiben in VC# und einegige Funktionen davon mit Delphi aufrufen.
Robert Giesecke hat das etwas gebastelt :zustimm: : sites.google.com/sit...ads/unmanagedexports

_________________
>λ=
eraser_seb Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 41



BeitragVerfasst: Fr 11.06.10 13:34 
so das habe ich alles gemacht. Habe auch die dll mit regasm.exe registriert.

Wie bekomme ich die Dll funktionen in Delphi rein.
Hoffe da kann mir jemand hier helfen weil ja mein Delphi Beitrag in der hinsicht gesperrt wurde.

Danke euch.
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Fr 11.06.10 20:33 
Gestern hieß es noch
user profile iconeraser_seb hat folgendes geschrieben Zum zitierten Posting springen:
Delphi Funktionsaufruf kein prob.
:gruebel: . Nun ja, um parallele Diskussionen zu vermeiden, sollten wir trotzdem bei diesem einen Thread bleiben. Ich werde ihn in eine Sparte verschieben, die von beiden Foren aus sichtbar ist.

user profile iconeraser_seb hat folgendes geschrieben Zum zitierten Posting springen:
Habe auch die dll mit regasm.exe registriert.
Das wäre dann wieder COM :nixweiss: .

Eine DLL wird über das Keyword external eingebunden; dazu solltest du auch viele Beispiele hier im Forum finden. Solltest du bei einem Parametertyp nicht weiterkommen, müsstest du mal die Signatur posten.

_________________
>λ=