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?
Thorsten schrieb: > 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. man könnte sie als einfach als Stream im stdin übergeben. Oder als Shared Memory. siehe https://de.wikipedia.org/wiki/Interprozesskommunikation
Ja. Als Einstieg: https://msdn.microsoft.com/de-de/library/windows/desktop/aa366551%28v=vs.85%29.aspx Allerdings gibt es das soweit ich weiß nicht als .net-Bibliothek.
Vielleicht hilft dir das hier weiter: http://blog.klaus-b.net/post/2008/07/06/Shared-Memory-in-verwaltetem-Code.aspx http://blog.klaus-b.net/post/2008/08/06/SpeedFans-shared-Memory-Segment-in-verwaltetem-Code-nutzen.aspx
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
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?
Ich könnte natürlich die Methode etc. als static deklarien, aber wie ich gelernt hab vermeidet man dieses in der OOP.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.