Funktion aus interner DLL
-
Hallo,
habe Problem mit dem Ausführen einer Funktion (TMeasurement) aus einer DLL.
Die Funktion liefert eine struct mit Messdaten zurück.Die Funktion kann nicht aufgerufen werden (error C2440).
Wie rufe ich die Funktion über einen function pointer sauber auf ?
Bisher: "Callback" bei anderen FunktionenDer Code:
typedef struct { union { float Frequency; // Signal described struct { // Number of pulses in X & Y WORD PulseX; WORD PulseY; }Pulse; float RDistance; //Rough distance }Freq; float Distance; // Distance measured in millimeters WORD Snr; // Signal quality (between 0..1024) short Sat; // For in-house test purposes only WORD Total; // For in-house test purposes only BYTE BitSet; BYTE Tag; // Tag of measurement } TMEASUREMENT; ... TMEASUREMENT TMeasurement; // function pointer HINSTANCE hModule; hModule = LoadLibraryA ("Fifo.dll"); // extern DLL ... TMeasurement = (TMEASUREMENT) GetProcAddress(hModule, "TMeasurement");
Danke !!!
-
"TMEASUREMENT" ist doch gar kein Funktionszeiger, sondern eine Struktur - und eine Struktur kann man nunmal nicht aufrufen.
typedef struct { ... } TMEASUREMENT; typedef TMEASUREMENT (*PMEASUREFUNC)(); ... PMEASUREFUNC TMeasurement; // function pointer HINSTANCE hModule; hModule = LoadLibraryA ("Fifo.dll"); // extern DLL ... TMeasurement = (PMEASUREFUNC) GetProcAddress(hModule, "TMeasurement");
(btw, der Bezeichner "TMeasurement" klingt nicht gerade nach einer Funktion)