почему это происходит? олли говорит нажмите shift+f8/f7/f9.. приведу код: Код (Text): .... IcqLogin db 'login.icq.com',0 .... invoke WSAStartup,0202h,offset buf invoke socket,AF_INET,SOCK_STREAM,0 mov sock,eax mov dest_addr.sin_family,AF_INET invoke htons,5190 mov dest_addr.sin_port,ax invoke gethostbyname,offset IcqLogin ;вот тут и происходит вызов исключения - 0000 06BA ...
пробовал, то-же самое, даже вот скачал fasm с этого сайта, открыл в олли, то-же самое, может это у всех при любом вызове gethostbyname? или горячо нами любимые программеры из МС немогли так лихо втыкнуть?
Попробуй убрать строки после WSAStartup, до gethostbyname. Должно работать. Проверь, что возвращают вызываемые функции.
invoke WSAStartup,0101h,offset buf invoke gethostbyname,offset IcqLogin работает нормально, но эксепшены всё равно вызываются =(
Делаем так: Код (Text): invoke WSAStartup,0101h,offset wsaData invoke gethostbyname,addr Buffer invoke socket,AF_INET,SOCK_STREAM,0 mov sock,eax mov dest_addr.sin_family,AF_INET invoke htons,5190 mov dest_addr.sin_port,ax И все будет в порядке. Почитай описание gethostbyname
2Cigan, невижу разницы в твоём коде. На досуге протестит, написал на с++: Код (Text): #include <winsock2.h> #include <windows.h> #pragma comment(lib,"Ws2_32.lib") #pragma comment(linker,"/ENTRY:main") void main() { WSADATA wsadata; WSAStartup(0x202,&wsadata); gethostbyname("ya.ru"); WSACleanup(); } всё равно ... наверно gethostbyname всегда генерирует эти эксепшены