Benutzer mit den meisten Antworten
interaktion dll-exe

Frage
-
Hallo
Ich hoffe mein Problem verständlich beschreiben zu können.
Ich habe eine dll erstellt, die als AddIn in einer Drittanbietersoftware geladen wird. Die dll enthält u.a. eine Form. In der Form ist eine PictureBox, die ein Thumbnail anzeigen soll. Da ich direkt aus der dll nicht auf das Thumbnail zugreifen kann, habe ich eine exe erstellt, die das kann.
Wie können diese beiden Teile meines Programmes kommunizieren? Die dll muss der exe den Pfad und Dateinamen geben können und die exe soll ein Image zurückliefern.
Stichworte für die Suchmaschine würden mir vermutlich schon weiterhelfen. ^^
Antworten
-
Da die dll die exe startet, würde ich an die exe 2 argumente beim start übergeben. Einmal den Path zum Thumbnail und einen Path wohin sie das Bild ablegen soll. Danach würde sich die exe selbst beenden. Du muss dann nur noch das Bild vom Path einlesen.
Mit der Process Klasse hast Du ja die Möglichkeit einen Process mit Argumenten zu starten. Zudem mit WaitForExit zu warten bist die exe fertig ist
eine andere Möglichkeit wäre übers locale Netzwerk zu kommunizieren und einen Stocket zu nutzen. Dafür müsstest Du dir ein Protokoll ausdenken.
Anschauen kannst Du dir auch WCF Was ist die Windows Communication Foundation?
Gruß Thomas
13 Millionen Schweine landen jährlich im Müll
Dev Apps von mir: UWP Segoe MDL2 Assets, UI Strings- Bearbeitet Thomas Wycichowski Freitag, 7. Februar 2020 11:53
- Als Antwort vorgeschlagen Ivan DragovMicrosoft contingent staff, Moderator Dienstag, 11. Februar 2020 11:23
- Als Antwort markiert Ivan DragovMicrosoft contingent staff, Moderator Dienstag, 18. Februar 2020 13:14
Alle Antworten
-
Hallo,
warum kannst Du nicht aus der Dll auf das Thumbnail zugreifen.
Startet die Dll die exe oder läuft die exe die ganze zeit im Hintergrund?
Gruß Thomas
13 Millionen Schweine landen jährlich im Müll
Dev Apps von mir: UWP Segoe MDL2 Assets, UI Strings -
Hallo
Die Dateien sind von Autodesk Inventor. Das Thumbnail liegt wohl in einem eigenen PropertySet. Es gibt zwei Möglichkeiten da ran zu kommen. Datei im Inventor öffnen. Dauert aber je nach Dateigröße viel zu lange. Zweite Möglichkeit, den ApprenticeServer benutzen. Das ist ein abgespeckter Inventor ohne grafische Oberfläche, aber dafür viel schneller. Den kann ich aber aus meiner dll heraus nicht nutzen, da meine dll als AddIn In-Process im Inventor läuft. Daher war die Idee, eine eigene exe zu starten, die den ApprenticeServer nutzt, um das Thumbnail IPictureDisp zu holen und ein Image draus zu machen.
Die dll startet die exe, wenn die Form geöffnet wird. Sobald die Form geschlossen wird, soll auch die exe wieder beendet werden. Sie ist nur dMittel zum Zweck
Es gibt noch eine fertige dll von Autodesk, die das Auslesen komplett ohne Inventor ermöglicht. Die ist in C++ und der Code ist für mich noch zu hoch. Vielleicht würde ich es verstehen, wenn es vb.net wäre, aber C++ ist Neuland.
Bei der dll weiß ich auch nicht, in wie weit die auch für eigene (kommerzielle) Programme genutzt werden kann.
-
Da die dll die exe startet, würde ich an die exe 2 argumente beim start übergeben. Einmal den Path zum Thumbnail und einen Path wohin sie das Bild ablegen soll. Danach würde sich die exe selbst beenden. Du muss dann nur noch das Bild vom Path einlesen.
Mit der Process Klasse hast Du ja die Möglichkeit einen Process mit Argumenten zu starten. Zudem mit WaitForExit zu warten bist die exe fertig ist
eine andere Möglichkeit wäre übers locale Netzwerk zu kommunizieren und einen Stocket zu nutzen. Dafür müsstest Du dir ein Protokoll ausdenken.
Anschauen kannst Du dir auch WCF Was ist die Windows Communication Foundation?
Gruß Thomas
13 Millionen Schweine landen jährlich im Müll
Dev Apps von mir: UWP Segoe MDL2 Assets, UI Strings- Bearbeitet Thomas Wycichowski Freitag, 7. Februar 2020 11:53
- Als Antwort vorgeschlagen Ivan DragovMicrosoft contingent staff, Moderator Dienstag, 11. Februar 2020 11:23
- Als Antwort markiert Ivan DragovMicrosoft contingent staff, Moderator Dienstag, 18. Februar 2020 13:14