none
interaktion dll-exe RRS feed

  • 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. ^^

    Mittwoch, 5. Februar 2020 12:38

Antworten

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

    Mittwoch, 5. Februar 2020 13:18
  • Hallo

    Hast du einen Verweis auf die DLL datei gemacht?

    bei Projekt --> Eigenschaften --> Verweis

    Donnerstag, 6. Februar 2020 08:45
  • 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.

    Donnerstag, 6. Februar 2020 23:09
  • 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


    Freitag, 7. Februar 2020 11:37
  • Hallo

    Danke für deine Mühen. Ich werd's ausprobieren.

    LG
    Ralf

    Samstag, 8. Februar 2020 12:52