C-DLL Adresse/Zeiger übergeben
-
Ich lese mit LoadLibrary() die DLL ein.
Mit GetProcAdress() suche ich mir die Adresse (den Zeiger) und weise den dann zu. Danach ist
pfnGetIrgendwas nicht mehr NULL.Mach das halt ganz ordentlich, der Reihe nach.
-
Das meine ich nicht. Als dein typedef noch falsch war. Da hätte doch der Zeiger eigentlich NULL sein müssen. Oder nicht?

-
Maffe001 schrieb:
Aber sag mal, normal hätte doch der Funktionszeiger immer NULL sein müssen, wenn du GetProcAddress ausgeführt hast. Oder nicht?

hab gerade ein bisschen rumgespielt und den param typ mit anderen vertauscht
zb: mit float und die anzahl der parameter im funcpointer verändert und
es hat trotzdem funktioniert.
die remarks in der msdn könnte man so deuten als wären in die parameter egal
sondern nur der name zählt die adresse der funktion zu bekommen.
-
Hmm, ist ja auch klar, jetzt wo du's sagst :D. Wenn man sich anschaut, was von einer Dll exportiert wird, erhält man ja auch nur den Namen und nicht mehr.
-
... als mein typedef noch "falsch" war, funktionierte das auch nicht. Die Compilation wurde abgebrochen.
-
GetProcAdress() sucht doch anhand des Funktionsnamens die Adresse. Was meint ihr mit "was von einer DLL exportiert wird" ?
-
vergessen schrieb:
... als mein typedef noch "falsch" war, funktionierte das auch nicht. Die Compilation wurde abgebrochen.
dann hast du irgendwo anderes einen fehler gehabt, den dieses wird erst zur laufzeit verarbeitet.
-
Wenn du bei der Erstellung einer Dll nicht genau angibst, was exportiert werden soll, kannst du es später z.B. per GetProcAddress nicht laden. Ich mach das so:
//Dll.h #define DLLEXPORT extern "C" __declspec(dllexport) DLLEXPORT int myFunc (<Parameter>);
-
Maffe001 schrieb:
Wenn du bei der Erstellung einer Dll nicht genau angibst, was exportiert werden soll, kannst du es später z.B. per GetProcAddress nicht laden. Ich mach das so:
jetzt bin ich verwirrt
, für wenn ist das jetzt 
-
Für vergessen.
vergessen schrieb:
[...]Was meint ihr mit "was von einer Dll exportiert wird."[...]