Forum: Programmieren allgemein
by nicodex,
9. Dez 2008
Ich habe mal ein relativ generisches Beispiel erstellt - siehe Anhang.
Ihr müsste euch beide auf eine Schnittstelle einigen - und dabei beachten, dass ihr mehr oder weniger nur Zeiger und Ordinalwerte verwenden könnt.
Forum: Programmieren allgemein
by nicodex,
9. Dez 2008
Zu 2)
Versuche auf C-Seite erst gar nicht sowas zu machen:BSTR Foo(...)Ja nach Compiler wird daraus intern unter Umständen:void Foo(..., BSTR *AResult)odervoid Foo(BSTR *AResult, ...)Man sollte nur void oder Ordinaltypen zurückgeben:void Foo(..., BSTR *AResult)DWORD Foo(..., BSTR *AResult)HRESULT Foo(..., BSTR *AResult)
Forum: Programmieren allgemein
by nicodex,
9. Dez 2008
Das Grundproblem ist: Wer gibt den Speicher wieder frei. Also muss es auf C-Seite auch eine Funktion dafür geben, oder man muss sich etwas anderes einfallen lassen: 1) Der Aufrufer (Delphi) stellt den Speicher bereit und übergibt einen Puffer und dessen Größe oder 2) man verwendet Strings, die über eine gemeinsame Schnittstelle verwendet werden können (Delphis WideString ist eine Kapselung des...