Heim >Backend-Entwicklung >C++ >Wie lade und rufe ich Funktionen dynamisch aus DLLs in C auf?
Dynamisches Laden von Funktionen aus DLLs
Das dynamische Laden von Funktionen aus DLLs (Dynamic Link Libraries) in C ermöglicht Ihnen den Zugriff auf separat definierte Funktionen Module zur Laufzeit. So gehen Sie dieses Problem an:
1. Laden Sie die DLL:
<br>HINSTANCE hDLL = LoadLibrary("path/to/dll.dll");<br>
Dieser Schritt lädt die DLL in den Speicher und gibt ein Handle dafür zurück.
2. Holen Sie sich den Funktionszeiger:
Um auf eine Funktion innerhalb der DLL zuzugreifen, müssen Sie deren Adresse mit GetProcAddress abrufen:
<br>typedef int (__stdcall *f_funci )(); // Funktionszeigertyp definieren<br>f_funci funci = (f_funci)GetProcAddress(hDLL, "funci");<br>
In diesem Beispiel wird davon ausgegangen, dass Ihre Funktion den Namen „funci“ trägt und verwendet die __stdcall-Aufrufkonvention.
3. Aufrufen der Funktion:
Sobald Sie den Funktionszeiger haben, können Sie die Funktion wie jede andere Funktion aufrufen:
<br>int result = funci(); <br>
4. Exportieren der Funktion aus der DLL:
In der DLL muss Ihre Funktion mit __declspec(dllexport) exportiert werden, um sie für andere Module zugänglich zu machen:
<br>int __declspec(dllexport) __stdcall funci() {<br> // Funktion Definition<br>}<br>
Zusätzliche Tipps:
Das obige ist der detaillierte Inhalt vonWie lade und rufe ich Funktionen dynamisch aus DLLs in C auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!