Wie kann ich meine Idee verwirklichen?



  • So ich habe mal wieder ein hoffentlich kleines Problem.
    Ich habe eine Idee zu einem Projekt, weiss aber nicht wie ich das realisieren kann. So wie ich es jetzt versuche klappt das leider nicht.
    Aber ersteinmal zu meiner Idee.

    Ich habe im groben vor, aus einer Anwendung heraus eine Variable zu setzen bzw. zu ändern. Eine 2te Anwendung soll sich dann den Wert der Variablen herholen können.

    Gedacht habe ich mir das dann so:
    Zuerst ein Projekt für das erste Dialogfenster erstellen. -> kein Problem.
    Dann zweites Projekt mit zweitem Fenster erstellen. -> auch kein Problem.
    Zu guter letzt erstelle ich eine .lib Datei, welche ich bei beiden einbinde.
    Diese Library sollte dann den Code enthalten, welche die Variable enthält.

    Meine Frage: Ist solch eine Library der richtige Weg? Und wie mache ich das, dass wenn ich mit Fenster1 die Variable setze, Fenster2 sie lesen kann?
    Muss ich dafür vorerst die Variable in einer externen Datei speichern?

    Meine Intention liegt darin, dass die Library noch mit mehreren Funktionen erweitert werden kann und ich die dann vieleicht in mehreren Anwendung nutzen kann.

    Ich hoffe, das ist verständlich, ansonsten scheut euch nicht, mich zu fragen. 😉

    EDIT: Wie kann ich das eigentlich machen, dass, wenn ich mehrere Projekte in einer Solution habe und ich diese kompiliere, beide Dialogfenster-Projekte geöffnet werden? Bisher ist das so, das sich nur ein Fenster öffnet.



  • Wie wäre es, wenn Fenster1 Fenster2 eine Nachricht schickt?
    Du kannst dir das vorstellen, wie man das ja aus der Schule kennt:
    Ich scheibe "Hallo" auf einen Zettel, falte den und werfe ihn dir an den Kopf. Du merkst das, nimmst den Zettel, faltest ihn auf und liest "Hallo".
    Sowas geht zwischen allen Fenstern. 🙂

    Schau mal bei Codeproject nach WM_COPYDATA. Das ist wirklich ganz einfach.
    Sonst frag hier nochmal. 🙂



  • Ok, werde ich tun. Aber genauso meinte ich das. Habe mir das nur mit einer Schublade vorgestellt. Ich lege in eine Schublade eine Notiz rein. Irgendjemand kann zur Schublade gehen und sich die Notiz anschauen oder erweitern oder vernichten.:)





  • Mist, da habe ich aber noch nen Denkfehler gehabt.
    Was mache ich denn, wenn es sich nicht nur um Fenster handelt?



  • CreateFileMapping 	Creates or opens a named or unnamed file mapping object for a specified file.
    FlushViewOfFile 	Writes to the disk a byte range within a mapped view of a file.
    MapViewOfFile 	Maps a view of a file into the address space of the calling process.
    MapViewOfFileEx 	Maps a view of a file into the address space of the calling process. The caller can optionally specify a suggested memory address for the mapped view.
    OpenFileMapping 	Opens a named file mapping object.
    UnmapViewOfFile 	Unmaps a mapped view of a file from the address space of a calling process.
    


  • @erardu: Das hiesse aber, dass ich die Variablen erst in eine Datei speichern muss, oder? Also mit Methoden aus der Library meine Variable/n in eine Datei speicher und daraus lese. Und dann mit dem File Mapping arbeite.





  • Ok, war gerade dabei das alles zu lesen. Falls es Probleme gibt melde ich mich nochmal.
    Danke! 😉 👍



  • So, ich melde mich mal wieder zurück.
    Ich habe nun ein wenig herumprogrammiert und bekomme den Austausch mit einer Variable auch eigentlich hin. Doch jetzt frage ich mich, was nun die beste Art für mein Projekt ist.
    Dafür ist es vielleicht sinnvoll, mein Projekt ein wenig zu erläutern:
    Ich arbeite mit einem Mikrocontroller, von dem ich über RS-232 Daten erfassen und visuell darstellen aber auch Befehle erteilen möchte. Hinzu kommt, dass die Auswertung der gesendeten/erfassten Daten mittels einer Library geschehen soll.
    Bsp. PC will Variable X auf 34 setzen. -> mit Hilfe der Library soll Variable X gesetzt werden. Mikrokontroller holt sich die Variable X.

    Ich würde dann lieber auch eine geordnete Weise bevorzugen, die Variablen/Daten zu speichern Mit CreateFileMapping usw. bekomme ich das nicht ganz hin. Lieber wäre es mir, wenn es so einfach gehen würde wie mit ReadString,WriteString.

    Oder habe ich irgendwie einen Denkfehler?



  • Ich habe langsam die Vermutung, dass das nicht funktioniert.
    Grund: Der Mikrokontroller wird anhand der UART durch Interrupts benachrichtig, ob Daten anliegen. Sei es zum Senden oder Empfangen.
    Und um zu senden, legt er die Daten in sein davorgesehenes Register.
    Wenn nun aber meine Windowsanwendung diese Veränderung erkannt haben möchte, muss es ja die Schnittstelle(RS-232) abfragen.

    Gewünscht ist aber, dass dazwischen ein Library hängt, welche die Änderungen der Variablen übernimmt. Dazu müsste meiner Meinung nach, die Library selbst Funktionen aufrufen und bearbeiten können. Was sie aber nicht kann!

    Einfacher:
    Also kann ich folgendes nicht realisieren oder?
    Meine Windowsanwendung legt ein Blatt mit Informationen in eine Schublade.
    Der Mikrokontroller öffnet die Schublade und holt sich die Informationen.

    Library sollte deswegen sein, damit man in Zukunft einen (x-beliebigen) Mikrokontroller anhand der Library ansteuern kann und Daten Senden und Empfangen kann.

    Liege ich da richtig?????



  • Hat keiner ne Idee oder schon Ähnliches ausprobiert?
    Bin echt am Verzweifeln. Mir fällt nichts mehr ein. 😞


Anmelden zum Antworten