Einzelnen Beitrag anzeigen

Robotiker
(Gast)

n/a Beiträge
 
#12

AW: C# Delegates in Delphi konsumieren

  Alt 19. Feb 2013, 08:10
Sicherlich ist COM/Interop ein sehr guter Weg für viele, gerade komplexere, Szenarios. aber COM ist auch saumäßig frickelig und kommt mit seinen eigenen Problemen daher.
Da wiederspreche ich dir in keinen Punkt. Aber der Fragesteller hatte schon mit COM begonnen und da ist das sicher für ihn ein praktikabler Weg. Insoweit stehe ich da zu meiner Aussage.

Was meine Engstirnigkeit angeht, ich komme von ursprünglich von Borland C++ und benutzte Delphi gelegentlich, weil es die "Haussprache" des C++ Builders ist, mit dem ich noch einige alte Sachen warten muss. Meine Haupt IDE ist Visual Studio, seit .net 1.0, ich habe also schon einige Interop-Geschichten hinter mir.

Meine Erfahrungen daraus ? Ich benutzt PInvoke wo es geht, sonst C++/CLI, kein COM.

Natürlich kann man bei einem Callback in C# schreiben
Code:
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
public delegate void MyCallback(IntPtr buffer, uint size)
und dann mit Byte-Array und Marshal.PtrToStructure rumtun. (Ganz toll wird das, wenn man als Parameter ein Array von C-structs kriegt, die selber wieder Pointer auf structs enthalten ...)

Ich nehme halt dann in komplizierten Fällen, oder welchen die sich dahin entwickeln könnten, C++/CLI. Andere auch. Das man das als Delphi Entwickler prinzipiell nicht macht, "weil das der Feind ist", kann ich verstehen, geht mir aber ehrlich gesagt am A... vorbei.
  Mit Zitat antworten Zitat