Frage von DIGGER6, 46

Kommunikation zwischen GUI und einer DLL?

Wie funktioniert prinzipiel die kommunikation zwischen GUI und einer DLL?. Wenn zum Beispiel in einer DLL eine Reihe an Daten entsteht (in einem Array) und diese Daten sollen von einer GUI dargestellt werden wie würde sowas funktionieren? ps: die DLL ist selbst erstellt

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von businessbiberde, 37

Normalerweise hat jede DLL ein dokumentiertes Interface in dem genau beschrieben ist, wie du sie benutzen kannst. Im Normalfall rufst du eine Funktion der DLL auf übergibst die Daten und die Funktion gibt dir die Daten - in deinem Fall das Array - zurück.

Kommentar von DIGGER6 ,

Die DLL ist selbst erstellt, dort entstehen Daten in einem Array und diese soll von einem GUI dargestellt werden. Die Frage ist, wie übermittelt man diese Daten also wie kommt das GUI an die Daten des Arrays?

Kommentar von businessbiberde ,

Angenommen du hast folgende DLL-Funktion:

DLL double dll_funktion (double a, double b)
{
    return a + b ;
}

Dann kannst du im Programm einfach

#include <windows.h>
#include <stdio.h>

// Importieren der Funktion aus der oben erstellten DLL
extern "C" __declspec(dllimport) double dll_funktion (double a, double b) ;

int main (void)
{
    // Aufrufen der externen Funktion
    double rueckgabe_dll = dll_funktion (1, 2) ;
    return 0 ;
}

und bekommst dann die Rückgabe.

Kommentar von DIGGER6 ,

Klasse besten dank. Noch eine Frage, wie würde man es angehen wenn die GUI nicht im Programm steckt. Also es gibt ein Programm das eine DLL-Funktion aufruft wobei innerhalb dieser DLL ein Array gebildet wird und dieses Array soll von einer eigenständigen GUI dargestellt werden. Geht das dann nur über Datenbank oder sowas?

Kommentar von businessbiberde ,

Dann würde ich dir empfehlen, dich mal mit dem MVC-Modell auseinander zu setzen. Das sturkturiert und vereinfacht die Zusammenarbeit von GUI und Programm sehr: https://de.wikipedia.org/wiki/Model_View_Controller

Kommentar von businessbiberde ,

Hier noch ein (englischsprachiges) Tutorial für C++ http://www.tutorialspoint.com/design_pattern/mvc_pattern.htm

Antwort
von bhiblo, 46

Die funktioniert durch dein Programm/Code. Array abarbeiten und entsprechend in der GUI rendern bzw. als Liste oder Text ausgeben. Aber befürchte das ist nicht das, was Du wirklich wissen wolltest ;-)

Antwort
von maximilianus7, 42

in einer DLL entstehen keine daten. das ist reiner programmcode.

Kommentar von DIGGER6 ,

funktionen die in dlls enthalten sind können arrays füllen wie in jedem anderen programm

Kommentar von J0T4T4 ,

Aber dass geschieht nicht in der DLL, sondern im aufrufenden Thread (bzw. in dem dessen Speicher), wie bei jedem anderen Programm.

Kommentar von DIGGER6 ,

Was heißt das dann für die Frage. Also wie kann ein GUI an die Arrays welche den Ursprung DLL haben kommen?

Keine passende Antwort gefunden?

Fragen Sie die Community