Announcement

Collapse
No announcement yet.

IpcChannel-Klasse

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • IpcChannel-Klasse

    Hi,

    ich habe Probleme bei einer (Remote)Object übergebung per IpcChannel. Das RemoteObject, eine .dll die eine Klasse des Datentyp System::MarshalByRefObject enthält, wird beim IpcClientChannel instanziert und beim IpcServerChannel kommt das Ergbins oder die Ausagbe der Methode (Funktion) der Klasse an.

    Also dass was in der Klasse an Befehlen geschrieben ist kommt dann beim Server zur Ausgabe. Und genau das ist mein Problem. Die Methoden in der Klasse währen damit statisch und nicht vor Instanzierung veränderbar, so bekommt der Server immer das Selbe.

    Aber meine vorstellung ist es, dass mit der Instanzierung Werte übergeben werden. Dazu habe ich im Klassen-Konstrutor Parameter deklariert. Das läst sich auch compilieren. Nur in der Laufzeit bei der instanzierung tritt folgende behauptung auf:
    Eine nicht behandelte Ausnahme des Typs "System.Runtime.Remoting.RemotingException" ist in mscorlib.dll aufgetreten.

    Zusätzliche Informationen: Ein nicht standardmäßiger Konstruktor kann nicht ausgeführt werden, wenn die Verbindung mit bekannten Objekten hergestellt wird.
    Wie kann ich dieses Problem umgehen? Ich habe es mit einfachen static Variablen brobiert um denen vor instanzierung der Klasse einen Wert zu, zu weisen. in der neuen Instanz hat dann allerdings die Variable dann doch den standart wert.

  • #2
    Ich habe eine Lösung gefunden. Es ist möglich in den einzelnen Funktionen Parameter zu deklarieren. Es dürfen dann aber auch keine Zeiger sein.

    Allerdings habe ich jetzt erst ein richtiges Problem. Im Beispiel wird das SUBSYSTEM:CONSOLE verwendet, da wird einfach Console::WriteLine() für eine Ausgabe verwendet, da es ja ein und das selbe Fenster ist. Aber wie mache ich bei einer SUBSYSTEM:WINDOWS Anwendung die Adresse der Windows::Forms::Form instance ausfindig um da einer Variable die zur instance gehört (das Form das durch Application geht) einen neuen wert zu zuweisen?

    Gibt es irgendwie die Möglichkeit instance nach einem Typ, also Windows::Forms::Form zu suchen und dann diese Adresse einer Zeiger-Variable des typ Windows::Forms::Form zu zuweisen?

    Comment

    Working...
    X