![]() |
Interfaces und die DLL/Anwendung Grenze.
Hallo,
es gibt bereits einen ähnlichen Thread von heute, aber ich habe eher allgemeine Fragen. Es gibt ja das Problem das Objekte in Anwendungen und DLL unterschiedliche RTTI Vectoren haben, weshalb der IS Parameter nicht Funktioniert und es einige Risiken gibt wenn unterschiedliche Compilerschalter benutzt wurden wenn man ein Objekt über die DLL/Anwendungs Grenze hinweg verwendet. Nun habe ich des Öfteren vernommen, das es durchaus möglich ist Objekte in einer DLL zu erzeugen und sie als INTERFACE in die Anwendung weiter zu geben. Ebenso auch umgekehrt. 1. Was muss ich dabei beachten? 2. Funktioniert die Referenzzählung über die DLL/Anwednungsgrenze hinaus?(müsste sie ja eigentlich) 3. Was ist mit Interfaces die String Parameter haben? Sharemem oder nicht? |
Re: Interfaces und die DLL/Anwendung Grenze.
1. Nix, du musst nur die gleiche IID (GUID) verwenden. Das ist ja auch das einzige, worauf sich ein Interface bezieht, da es ja keine RTTI besitzt.
2. ja klar 3. Nach wie vor genauso ungünstig. Da ändert sich leider nichts. |
Re: Interfaces und die DLL/Anwendung Grenze.
Zitat:
|
Re: Interfaces und die DLL/Anwendung Grenze.
@MKinzler:
Warum WideString? Ist das nicht auch nur ein PWidechar? Gibts dazu bessere Compiler Magic? |
Re: Interfaces und die DLL/Anwendung Grenze.
aus
![]() Zitat:
|
Re: Interfaces und die DLL/Anwendung Grenze.
Muss ich die WideStrings dann zur weiteren Verabreitung noch mal zu DelphiSTRING Strings konvertieren, oder macht der
compiler das von alleine? Reicht ein Type Cast(vermutlich nicht)? Gibt es die Stringfunktionen auch alle für widestring? wenn ja , warum sollte man dann überhaupt noch Delphistrings benutzen? Sind die WideStrings imperformanter? Sorry, aber irgendwie brauch ich mehr input. |
Re: Interfaces und die DLL/Anwendung Grenze.
man kann String und WideString gegenseitig zuweisen. mehr aber nicht. WideString ist kein nativer Stringtyp. es wird keine Referenzzählung unterstützt.
|
Re: Interfaces und die DLL/Anwendung Grenze.
Zitat:
...dann muss ich mich aber auch um Instanzierung und Freigabe selbst kümmern? |
Re: Interfaces und die DLL/Anwendung Grenze.
Es kommt darauf an, was du alles mit dem String anfangen willst. String ist zwar performanter, aber durch ständiges umkopieren, geht dieser Vorteil schnell flöten.
Zitat:
|
Re: Interfaces und die DLL/Anwendung Grenze.
Ich sehe gerade man kann Widestrings nur mit eigenen Funktionen vergleichen etc. ? Wie in C .
Muss ich Widestring speicher eigenständig anfordern? Und wenn keine Referenzzählung unterstützt wird wie gebe ich Widestrings wider frei? Gehen Widestrings nur über Getmem und Freemem? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:30 Uhr. |
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-2025 by Thomas Breitkreuz