C# Memory an Exe als Paramter übergeben

Gast #4411984
Lesenswert?
• ▲
▼
Hallo und ein frohes neues Jahr,

ich wollte mal fragen, ob Ihr eine Möglichkeit kennt an eine exe Datei 
als Parameter ein Speicherbereich zu übergeben.

Die Exedatei möchte gerne als Übergabeparameter eine PNG Datei haben und 
die PNG Datei liegt schon als Bytearray in meinem Programm vor.

Ich möchte mir das Abspeichern auf der Festplatte gerne einsparen, indem 
ich die Daten direkt vom Speicher aus an die Exe Datei übergeben kann.

Geht sowas?
Gast #4413511
Lesenswert?
• ▲
▼
Thorsten schrieb:

> ich wollte mal fragen, ob Ihr eine Möglichkeit kennt an eine exe Datei
> als Parameter ein Speicherbereich zu übergeben.

Ja, sogar mehrere. Letztlich ist das nämlich nur eine ganz normale 
IPC(*)-Anwendung. Man benutzt dazu unter Windows genau die 
Schnittstellen, die das Windows-API für IPC bereitstellt.

(*) IPC=inter-process communication

Es gibt (mindestens) folgende Möglichkeiten:

-WM_COPYDATA-Windows-Message
-Shared memory
-Memory mapped files
-Named pipes
-Mailslots

Wenn .net in's Spiel kommt, muß man zusätzlich leider hochineffizent 
Speicherinhalte zwischen "verwaltetem" und nichtverwaltetem Speicher 
hin- und herkopieren. Methoden, die das leisten, stellt die Klasse 
System.Runtime.InteropServices.Marshal bereit. Auch die zur Anbindung 
der Win32-API-Funktionen nötigen .net-Sprachfeatures werden über den 
Interop-Namespace bereitgestellt.

RTFM
Gast #4420902
Lesenswert?
• ▲
▼
Hallo, ich musste meine Prioritäten vom Programm etwas verschieben, 
deshalb kam ich nicht dazu. Ich benutze die Android Debug Bridge um mit 
meinem Handy zu kommunizieren bzw. Applicationen zu testen, dazu rufe 
ich in meinem C# Programm die Executable adb.exe mit dem Parameter für 
ein Shell auf "adb.exe -s myhandy shell, danach befinde ich mich in der 
Console auf dem Mobiltelefon, soweit so gut. Nun kann ich Daten über 
stdout und Stdin direkt an die Console senden. Ich bin immer noch etwas 
wackelig mit der OOP und frage mich, wie lange mein Process gültig ist. 
Kann ich jetzt aus jeder Methode heraus auf den Process zugreifen? Oder 
verliert die Instance Ihre Gültigkeit, nachdem ich aus der Methode zum 
Aufruf der Instance verlassen hab?

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.