WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 06.03.2002, 00:56   #1
Sonic
Master
 
Registriert seit: 28.03.2000
Alter: 45
Beiträge: 691


Sonic eine Nachricht über ICQ schicken
Standard mehrere DLL instanzen mit einem Programm

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
____________________________________
__________________
|»»»»»SONIC««««««|
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Sonic ist offline   Mit Zitat antworten
Alt 06.03.2002, 19:37   #2
ReiniBugman
Jr. Member
 
Registriert seit: 13.09.2001
Beiträge: 83


Standard

Ich würd asynchrone Sockets nehmen.

Siehe http://www.gamedev.net/reference/pro...res/asyncsock/
ReiniBugman ist offline   Mit Zitat antworten
Alt 06.03.2002, 22:23   #3
Sonic
Master
 
Registriert seit: 28.03.2000
Alter: 45
Beiträge: 691


Sonic eine Nachricht über ICQ schicken
Standard

Zitat:
Original geschrieben von ReiniBugman
Ich würd asynchrone Sockets nehmen.

Siehe http://www.gamedev.net/reference/pro...res/asyncsock/
Das sowieso!
Nur ganz so asynchron sind die ja auch nicht.
Das ganze geht ja über die Windowmessages.
Ich denke mir wenn ich 5 DL sockets hab und "gleichzeitig" bei jeden in einen Buffer von 1 kb lese blockiert mir der gerade aktive ja die anderen.
Und ich dachte mir wenn ich das in eine DLL auslagere und 5 instanzen von der DLL in meine mProgramm habe, also jeder aktive Socket seine eigene WNDPROC hat, blockiert er die anderen nicht wenn einer mal eine schlechte verbindung hat.
Oder geht das sowieso nicht weil die sockets Windows intern sequenziell abgefragt werden?

lg
____________________________________
__________________
|»»»»»SONIC««««««|
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Sonic ist offline   Mit Zitat antworten
Alt 06.03.2002, 23:44   #4
ReiniBugman
Jr. Member
 
Registriert seit: 13.09.2001
Beiträge: 83


Standard

Vielleicht hilft dir der Artikel ja weiter, mehr kann ich nicht mehr bieten...

http://msdn.microsoft.com/msdnmag/is...ck/winsock.asp
ReiniBugman ist offline   Mit Zitat antworten
Alt 07.03.2002, 00:07   #5
Sonic
Master
 
Registriert seit: 28.03.2000
Alter: 45
Beiträge: 691


Sonic eine Nachricht über ICQ schicken
Standard

Danke, werd ich mir mal anschauen!

Ich glaub am besten ist es wenn ich das ganze einfach ausprogrammiere und teste. Dann bekomm ich sicher meine antworten.

lg
____________________________________
__________________
|»»»»»SONIC««««««|
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Sonic ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:29 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag