Ist es möglich, die DataSnap-Pakete in Delphi XE mit einer neuen / anderen Version von Indy neu zu kompilieren?

9

Okay - wir haben ein interessantes Problem.

Etwas Hintergrund:

  1. Unsere Hauptanwendung verwendet Indy 10. Wir nehmen jedoch den Indy 10 Beheben und reparieren Sie Bugs darin, kompilieren Sie und installieren Sie unseren eigenen Satz von Indy Komponenten.

  2. Wir migrieren zu Delphi XE und möchten DataSnap verwenden.

  3. DataSnap benötigt die "offizielle, Versandversion" von Indy inkompatibel mit unserer angepassten Version von Indy.

  4. Unsere DataSnap-Server werden separate Anwendungen sein, aber seit wir haben unsere eigenen Indy in der IDE installiert, können wir nicht "die Streams" überqueren.

Okay, daher können wir Delphi XEs DataSnap nicht aus der Box wegen dieses Kompatibilitätsproblems.

Also meine Fragen sind:

Ist es möglich, die DataSnap-Pakete in Delphi XE mit einer neuen / anderen Version von Indy neu zu kompilieren?

Ihre Gedanken dankbar angenommen.

    
Nick Hodges 27.06.2011, 18:22
quelle

2 Antworten

3

Die gängige Meinung ist Nein, das ist nicht möglich, da nicht alle Quellen von Embarcadero bereitgestellt werden und einige dieser Quellen auf die Erstellung von Indy angewiesen sind. (Das ist extrem frustrierend für Endbenutzer, da die Version von Indy, die mit Delphi ausgeliefert wird, relativ schnell veraltet ist und manchmal ist die zu diesem Zeitpunkt ausgewählte Version nicht unbedingt eine sehr gute.)

Siehe zugehörige SO-Frage: Ist es möglich, Indy 10.5.8.0 in Delphi XE und DataSnap zu verwenden?

Siehe auch die Indy-Projektseite: Ссылка welches besagt:

  

Hinweis: In D / CB / RAD 2009+ wird DataSnap verwendet   Indy 10 intern. Installieren eines neuen   Version von Indy wird DataSnap rendern   unbrauchbar, da es nicht möglich ist   lade die Indy-Pakete nicht mehr.   DataSnap wird gegen den Indy kompiliert   Pakete, die mit der IDE geliefert werden, und   DataSnap kann nicht bis zum Ende neu kompiliert werden   Benutzer. Wenn Sie DataSnap verwenden müssen,   dann müssen Sie das beibehalten   Original Indy 10 Pakete für den Einsatz in   DataSnap-Projekte.

Es wurde gesagt, dass die nächste Version hoffentlich leichtere Updates von Indy ermöglichen wird.

    
Darian Miller 27.06.2011, 23:03
quelle
2

Wenn alle DataSnap-Quellen enthalten sind, ist es natürlich möglich, eine Art PE-ausführbares Analyseprogramm zu verwenden, um zu erkennen, welche Klassen und Einheiten in BPL verwendet werden (da BPLs nur benutzerdefinierte DLLs sind). Eine sehr einfache Anwendung bietet GExperts.

In BPLs haben die Exportlistenzeilen von GExperts \ PE Information ein Format wie @xp $ @ [nn] [UnitName] @ [TypName] (für Typen) und @ [ UnitName] {@ [Typ & gt;]]} @ [Unit globales Element wie Prozeduren oder Variablen] (für den Rest).

Sie können diese Liste in einer Datei und GREP speichern, um eine Liste der in einer BPL verwendeten Einheiten zu erhalten.

Reale Beispiele (vcl140.bpl):

  • @ $ xp $ 11Forms @ TForm
  • @ Appvents @ TCustomApplicationEvents @ Aktivieren
  • @ Clipbrd @ Zwischenablage
Fabricio Araujo 27.06.2011 20:26
quelle

Tags und Links