Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   IPC Kommunikation mit Pipes (https://www.delphipraxis.net/213260-ipc-kommunikation-mit-pipes.html)

kuba 26. Jun 2023 23:10

IPC Kommunikation mit Pipes
 
Hallo,

ich habe einige Tests mit der IPC Komponente (Inter Process Communication) von Overbyte gemacht. Dabei ist mir aufgefallen, dass die Demo Programme nur im 32 Bit Modus funktionieren. Wenn ich die Beispiele als 64 Bit Anwendungen kompiliere dann hängen sich Server und Client kurz nach dem Connect auf. Kann mir jemand erklären warum das so ist und wie man die Programme als 64 Bit Version zum laufen bringen kann ?

Vielen Dank !

jaenicke 27. Jun 2023 00:09

AW: IPC Kommunikation mit Pipes
 
Zitat:

Zitat von kuba (Beitrag 1523774)
Dabei ist mir aufgefallen, dass die Demo Programme nur im 32 Bit Modus funktionieren. Wenn ich die Beispiele als 64 Bit Anwendungen kompiliere dann hängen sich Server und Client kurz nach dem Connect auf.

Das ist bei mir nicht so. Hier funktioniert es auch unter 64-Bit problemlos. Vielleicht grätscht da ein Antivirenprogramm rein?

Der schöne Günther 27. Jun 2023 09:00

AW: IPC Kommunikation mit Pipes
 
Ich kenne diese "Overbyte"-Geschichte jetzt nicht, aber in unserem Hauptprodukt redet eine 32-Bit-Delphi-Anwendung problemlos über Pipes mit einer 64-Bit-Nicht-Delphi-Anwendung und das geht seit Jahren völlig problemlos.

kuba 27. Jun 2023 10:17

AW: IPC Kommunikation mit Pipes
 
Ich habe das nochmal getestet. Wenn ich den Pipe Server 32 Bit kompiliere und den Client 64 Bit dann funktioniert es. Wenn ich den Server jedoch beende und mit dem Client versuche neu zu verbinden dann beendet sich der Client. Wenn beide mit 32 Bit kompiliert sind erhalte ich entsprechende Fehlermeldung wenn der Server nicht zur Verfügung steht.

kuba 27. Jun 2023 11:00

AW: IPC Kommunikation mit Pipes
 
Liste der Anhänge anzeigen (Anzahl: 1)
Interessanterweise habe ich festgestellt, dass ich die Komponente nicht mit meiner älteren Delphi XE 7 Version verwenden kann. Bei der Installation erhalte ich die Fehlermeldung im Anhang.

kuba 27. Jun 2023 11:12

AW: IPC Kommunikation mit Pipes
 
Liste der Anhänge anzeigen (Anzahl: 1)
Mir fällt gerade noch ein, dass es bei der Installation ein Problem gab. Ich habe im Quellcode eine Deklaration angepasst. Eventuell ist das die Ursache für die Fehler ??
Obwohl ich die Änderung rückgängig gemacht habe funktioniert die Installation mit XE 7 nicht.

Der schöne Günther 27. Jun 2023 11:27

AW: IPC Kommunikation mit Pipes
 
Schau dir doch die Fehlermeldung einmal in Ruhe an.
Er sagt "Nein,
Delphi-Quellcode:
Realloc(..)
sieht bei
Delphi-Quellcode:
TMemoryStream
gar nicht so aus. Wenn du das überschreiben willst, musst du das auch genauso machen, dass es zu
Delphi-Quellcode:
TMemoryStream
passt".

Und recht hat er. Die Signatur von
Delphi-Quellcode:
Realloc(..)
ist bei
Delphi-Quellcode:
TMemoryStream
korrekterweise mit
Delphi-Quellcode:
NativeInt
, nicht
Delphi-Quellcode:
LongInt
. Letzteres ist unter Windows lustigerweise immer 32 Bit, auch wenn es eine 64-Bit-Anwendung ist.

BerndS 27. Jun 2023 11:39

AW: IPC Kommunikation mit Pipes
 
Ich habe das gerade mal runtergeladen und mit XE7 geöffnet.
Dazu habe ich die PipesProjects.groupproj geöffnet und dann Alle erzeugen ausgeführt.
Bei mir kommt kein Fehler.
Auch das Installieren von PipesDesignTime.dpk klappt problemlos.
Auch nach dem Neustart von XE7 keine Fehlermeldung.
Alle Komonenten lassen sich auch im Designer auswählen und hinzufügen.

Schon seltsam, dass es bei dir zu Fehlern kommt.
Hast du die Version Delphi XE7 Version 21.0.17707.5020 Update 1 installiert?

kuba 27. Jun 2023 12:13

AW: IPC Kommunikation mit Pipes
 
Zitat:

Zitat von BerndS (Beitrag 1523796)
Ich habe das gerade mal runtergeladen und mit XE7 geöffnet.
Dazu habe ich die PipesProjects.groupproj geöffnet und dann Alle erzeugen ausgeführt.
Bei mir kommt kein Fehler.
Auch das Installieren von PipesDesignTime.dpk klappt problemlos.
Auch nach dem Neustart von XE7 keine Fehlermeldung.
Alle Komonenten lassen sich auch im Designer auswählen und hinzufügen.

Schon seltsam, dass es bei dir zu Fehlern kommt.
Hast du die Version Delphi XE7 Version 21.0.17707.5020 Update 1 installiert?

Korrekt, genau die Version Delphi XE7 Version 21.0.17707.5020 Update 1. Beim kompilieren kommt kein Fehler, erst bei der Installation der PipesDesignTime Komponente erhalte ich EAccessViolation in Modul rtl210.bpl. Mit Delphi XE 2 übrigens der gleiche Fehler in Modul rtl60.bpl. Mit Alexandria 11.2 inkl. Patch kommt schon beim kompilieren ein Fehler: [dcc32 Fehler] Pipes.pas(435): E2037 Deklaration von 'Realloc' unterscheidet sich von vorheriger Deklaration

Wenn ich dann die Deklaration in Nativeint ändere kann ich kompilieren und auch die Komponente installieren. Einwandfreie Funktion habe ich jedoch nur mit den 32 Bit Versionen. Ich benutze Windows 11.

kuba 27. Jun 2023 12:34

AW: IPC Kommunikation mit Pipes
 
So, jetzt habe ich eine ältere VM mit Windows 10 und Delphi XE 7 hervorgeholt. Da funktioniert alles einwandfrei inkl. 64 Bit Versionen. Was kann man da jetzt noch machen ??


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:04 Uhr.
Seite 1 von 2  1 2      

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 by Thomas Breitkreuz