AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

mit string an PTypeinfo rankommen

Ein Thema von _frank_ · begonnen am 27. Apr 2006 · letzter Beitrag vom 27. Apr 2006
 
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#10

Re: mit string an PTypeinfo rankommen

  Alt 27. Apr 2006, 16:16
Ich habe deinen Source 1 zu 1 nun mal in Delphi 5 und Delphi 3 getestet. Jeweils ohne und mit Packages. Es funktionierte immer egal ob ich TBorderIcon oder TBorderIcons benutze.

Es sieht wohl so aus das du Unit Forms.pas garnicht in deinem Projekt benutzt und der Compiler somit auch nicht den Typ TBorderIcon einlinkt.

Obige Methode kann ja nur RTTIs finden die auch im Program verwendet werden !!

Am besten kompilierst du dein Projekt mal mit Packages so das Package VCL30.dpl auch eingelinkt wird. Dann müsste deine obige Funktion auch diese RTTI finden da nun der Compiler/Linker diesen Typ nicht mehr aus dem VCL30 Package "weg-linken" kann

Mit GetModuleFindName(FindHInstance(PTypeInfo), xzy); kannst du dann sehen das diese RTTI im Codesegment des Packages VCL30 abgelegt ist.

Gruß Hagen

[edit]
Und nochwas !! Kann es sein das du diese Funktion in eine DLL augelagert hast ? Das kann dann nicht funktioinieren da dann nur die RTTI innerhalb dieser DLL iteriert wird. Du müsstest das Modul-Handle -> HInstance des Prozesses dazu haben und an EnumTypeInfo() übergeben. Bei einer DLL die Packages benutzt und die Hauptanwendung benutzt die gleichen Packages wird EnumModules() innerhab der DLL auf die gleichen globalen Datenstrukturen zugreifen wie der Hauptprozess. Dh. in diesem Moment hat diese DLL auch Zugriff auf die Liste aller geladenen Module im Prozess und kann somit auch alle RTTIs finden.
Falls du NICHT mit Packages arbeiten möchtest aber denoch eine DLL benutzen willst so kann ich dir einen weiteren Trick geben der denoch alle Module des Prozesses itererien kann.
[/edit]
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:53 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