lima-city: Webhosting, Domains und Cloud
0 Pluspunkte 0 Minuspunkte
Wie kann ich eine Funktion in einer DLL aufrufen, ohne das diese mit verlinkt wurde?
von  

1 Antwort

0 Pluspunkte 0 Minuspunkte

Dazu musst du die Signatur - also Name, Parameter und Rückgabewert der Funktion kennen. Angenommen deine Funktion sieht so aus

int myFunc(int a, float b) { ... }

Das bedeutet der Rückgabewert ist ein int, und die Parameter sind int und float. Du kannst eine sogenannte Typedefinition erstellen um die vorhandenen Datentypen (int, float, char,..) zu erweitern.

#include <Windows.h>

/* Typedefinition erstellen */
typedef int (__cdecl *MYFUNC)(int, float);

int main() {

    HANDLE dll; // dll file
    MYFUNC fn;   // function pointer

    dll = LoadLibrary("My.dll");   
    fn = (MYFUNC) GetProcAddress(dll, "myFunc");

    int r = (*fn)(2, 3.14159f); // function call

    return 0;

}
von  
Diese Community basiert auf dem Prinzip der Selbstregulierung. Beiträge werden von Nutzern erstellt, bewertet und verbessert – ganz ohne zentrale Moderation.

Wer hilfreiche Fragen stellt oder gute Antworten gibt, sammelt Punkte. Mit steigender Punktzahl erhalten Mitglieder automatisch mehr Rechte, zum Beispiel

  • Kommentare verfassen
  • Fragen und Antworten bewerten
  • Themen von Fragen bearbeiten
  • Fragen, Antworten und Kommentare bearbeiten
  • Inhalte ausblenden

So entsteht eine Plattform, auf der sich Qualität durchsetzt – getragen von einer engagierten Gemeinschaft.

2.3k Fragen

2.8k Antworten

261 Kommentare

13 Nutzer