1634Racine <mnjfmr@j.cbqebml> napisał(a):
Nie ma problemu z ujawnieniem szczegolow, ale chodzilo mi o wnioskowanie
ogolne.
program = Deblocker (komorki androidowe), opisywany jako takze dla xp.
procedura = WSAPoll
biblioteka = ws2_32.dll
Raczej mialem racje - opisy-klamczuszki, bo program nie jest dla xp:
minimalne wymagania dla
WSAPoll, to Vista
https://msdn.microsoft.com/pl-pl/library/windows/desktop/ms741669%28v=vs.
8 5%29.aspx?f=255&MSPPError=-2147217396
Zgadza się. A na dodatek i tak ta funkcja ma buga :)
https://daniel.haxx.se/blog/2012/10/10/wsapoll-is-broken/
Ale pojawil sie oboczny problem, raczej ciekawostkowy: ws2_32.dll to b.
wazny plik (sockety), jest u mnie w xp, tylko, ze... ani sladu po nim w
rejestrze. Jest w system32. Bez rejestracji? hm. Moze sa takie cuda. W
kazdym razie zarejestrowac nie daje sie. Wlasciwosci (wersja, etc.) ma
zgodne z opisami w sieci.
Przeświadczenie, że DLL musi być w rejestrze i musi się rejestrować jest
błędne. Może zbyt wiele poradników w necie każe odpalać regsvr32 i jest
takie wrażenie, ale ogólnie zwykła biblioteka DLL nie potrzebuje żadnych
rejestracji ani ich nie obsługuje. Po prostu eksportuje zestaw
funkcji(procedur) i już. EXE może ją zaimportować poprzez importy, z
katalogów z PATH, Windows lub bieżącego. EXE może też załadować DLL
funkcją LoadLibrary
https://msdn.microsoft.com/en-us/library/ms684175.aspx Nie zobaczysz
wtedy tej biblioteki w importach EXEka.
Istnieje jednak specjalna odmiana bibliotek DLL - biblioteki COM. Takie
biblioteki są obiektowe i udostępniają swoje funkcje zgodnie z modelem
COM. Wymagają one rejestracji, która odbywa się przez wywołanie z nich
procedury DllRegisterServer i która tworzy wpisy w rejestrze. Natomiast
biblioteki Windows API, w tym socketowe, to zwykłe DLLe, nie COMowe.