HI!
Weiss jemand ob und wenn ja wie man (in C) mehrere instanzen einer DLL macht?
Reicht es wenn ich mehrmals GetProcAddress aufrufe und unterschiedlichen Variablen(function pointern) zuweise?
"Pseudo" Code schnipsel:
Code:
...
HINSTANCE hDLL; // DLL Handle
LPFNDLLFUNC1 lpfnDllFunc1; // Function pointer1
LPFNDLLFUNC2 lpfnDllFunc2; // Function pointer2
LPFNDLLFUNC3 lpfnDllFunc3; // Function pointer3
hDLL = LoadLibrary("MyDLL");
if (hDLL != NULL)
{
//3 Instanzen von der DLL erzeugen ??
lpfnDllFunc1 = (LPFNDLLFUNC1)GetProcAddress(hDLL, "DLLFunc");
lpfnDllFunc2 = (LPFNDLLFUNC2)GetProcAddress(hDLL, "DLLFunc");
lpfnDllFunc3 = (LPFNDLLFUNC3)GetProcAddress(hDLL, "DLLFunc");
}
...
Hintergrund:
Ich möchte ein Programm mit mehreren gleichzeitigen downloadthreads schreiben. Wenn ich aber die unterschiedlichen Sockets (DL threads) alle im Hauptprogramm behandle, dann blockiert jeder aufruf von recv (zum lesen vom Socket) das Programm. Wenn nun ein DL Thread mal eine schlechte Verbindung hat blockiert er alle anderen threads (während recv läuft).
Oder irre ich mich da!?
Und um mich nicht mit echten threads auseinander setzen zu müssen dachte ich mir ich schreib eine DLL mit der ich einen thread starte und die dann selbstständig runterläd.
Ich hoffe ihr habt ein paar Hinweise für mich bzw. andere Ideen wie ich mehrere nicht blockierende DL Threads machen kann.
Danke!
lg