Windows ermöglicht es nicht, dass ein 32-Bit-Prozess eine 64-Bit-DLL lädt, daher versuche ich, Remoting zu verwenden, damit der 32-Bit-Prozess mit einem 64-Bit-Prozess interagieren kann.Wie kann ein 32-Bit-Prozess mit einem 64-Bit-Prozess in .NET kommunizieren?
Hier ist das Problem: während die beiden Anwendungen auf der gleichen Maschine befinden, ist einer 32 Bit und der andere 64 Bit, und sie müssen so sein: machen 32 Bit oder 64 Bit würde alle diese Anwendungen brechen sind auf gebaut.
Ich verwende die .NET System.Runtime.Remoting.RemotingConfiguration Klasse und rufe die Configure() -Methode auf und übergebe einen Verweis auf eine App.config Datei, die auf die MarshalByRefObject Klasse verweist, auf die ich per Remoting zugreifen werde.
Ich habe es zu arbeiten, aber nur so lange Client, Host, MarshalByRefObject Klasse sind entweder 32 Bit oder 64 Bit. Wenn ich sie vermische, wird das nicht funktionieren: Ich werde mit einer BadImageFormatException enden:
Konnte Datei oder Assembly 'MyRemotingObject' oder eine seiner Abhängigkeiten nicht laden. Es wurde versucht, ein Programm mit einem falschen Format zu laden.
Die Ausnahme verschwindet, sobald ich beide Anwendungen entweder 32 Bit oder 64 Bit, aber wieder muss einer von ihnen 32 Bit und der andere 64 Bit sein.
Kann mir jemand sagen, wie ich die Interprozesskommunikation zwischen einer 32-Bit-.NET-Anwendung und einer .64-Bit-.NET-Anwendung aktivieren kann?
Remoting ist nicht dein Freund hier; Verwenden Sie etwas einfacheres - vielleicht ein einfacher Socket-Server. –
Warum nicht alle 32bit oder alle 64bit? Was ist der Punkt der Vermischung dieser beiden? –