J'ai commencé à écrire un contrôle ActiveX qui utilise des sockets.Est-il possible de dire si WSAStartup a été appelé dans un processus?
Les applications qui utilisent ce contrôle peuvent utiliser ou non des sockets. Mon contrôle peut-il indiquer si WSAStartup a été appelé?
Sinon, appelez-le. Un petit test révèle que l'appel WSAStartup plusieurs fois est tollerated. Mais que se passe-t-il si une version différente de winsock est demandée? cela va-t-il casser d'autres parties de l'application?
N'oubliez pas d'appeler 'closesocket()' si 'socket()' est réussi dans 'WinsockInitialized()', sinon vous avez une fuite. –
bon point! fixé cela. – Matt
Il n'est pas prudent d'appeler WSAStartup à tout moment. De MSDN: "La fonction WSAStartup entraîne généralement le chargement de DLL auxiliaires spécifiques au protocole, ce qui signifie que la fonction WSAStartup ne doit pas être appelée à partir de la fonction DllMain dans une DLL d'application, ce qui peut entraîner des blocages" – czz