Forum: Multimedia
Delphi
by Dezipaitor,
27. Okt 2009
hat niemand die Deklaration
function(SDKVersion: LongWord): ^IDirect3D9; stdcall
mal ausprobiert?
Ich meinte mit ^
Forum: Multimedia
Delphi
by Dezipaitor,
27. Okt 2009
Ich bezog mich garnicht auf die Übersetzung, sondern nur, dass man Interfaces als Result zurückgeben kann.
Aber stimmt schon, wenn man es übersetzt dann über einen Pointer. D.h. die Routine muss gekapselt werden und die neue Routine darf nur öffentlich sein.
Allerdings, der Header definiert das stdcall garnicht.
Forum: Multimedia
Delphi
by Dezipaitor,
26. Okt 2009
Wenn du das Interface in einen Zeiger verwandelst, dann musst du selbst _AddRef benutzen, weil Delphi dann dies nicht mehr automatisch für dich übernimmt. Das ist völlig unabhängig, wie die Variable verwendet wird, ob per Result oder var- bzw. out-Parameter.
Wenn du den ResultZeiger durch den Interfacename ersetzt, dann solltest du kein _AddRef benötigen.
Forum: Multimedia
Delphi
by Dezipaitor,
25. Okt 2009
Interfaces über einen Rückgaberwert zu liefern ist in Delphi ohne Probleme möglich und nichts problematisches, wenn man Delphi nicht austrickst. Dazu gehört, dass man nur mit dem Interface arbeitet und keine durch Create erzeugte Instanz besitzt. Zudem umgehen untypisierte Zeiger als Deckmantel für Interfaces die Referenzzählung (Wozu hier überhaupt?).
In C++ wird es eben nur mit OUT gemacht,...