· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.WIN32 —› HELP Элементарная программа не работает :(((

Посл.отвђт Сообщенiе


Дата: Фев 6, 2003 15:05:50

Братцы помогите советом......
Данная прога компилится TASM'ом и вылетает с ошибкой
"Программа выполнела и т.д."
Ну что, блин, здесь не так ???????
.386P
.model Flat,StdCall
mb_Ok equ 0
hWnd equ 0
lpText equ offset text
lpCaption equ offset caption
SocksVersion equ 0101h

extrn ExitProcess:PROC
extrn MessageBoxA:PROC
extrn WSAStartup:PROC

.Data
WSAData STRUCT
wVersion dw 0
wHighVersion dw 0
szDescription db 257 dup(0);256+1
szSystemStatus db 129 dup(0);128+1
iMaxSockets dw 0
iMaxUpdDg dw 0
lpVendorInfo dd 0
WSAData ENDS

text db "Server is work now.",13,10,0
caption db "Socks Server",0

.Code
Main:
push offset WSAData
push SocksVersion
call WSAStartup

cmp eax,0
jne EndOfProgramm

push mb_Ok
push lpCaption
push lpText
push hWnd
call MessageBoxA

EndOfProgramm:
call ExitProcess
End Main


Дата: Фев 6, 2003 15:30:36

Бразер, а ты чего системе ExitProcess-ом
возвращаешь? Вообще надо:
push 0
call ExitProcess
А то если месагбокс вылез, то в eax
не ноль (см. описание).


Дата: Фев 6, 2003 15:42:17

А MessageBox вообще показывает?
И где WSACleanup?


Дата: Фев 6, 2003 16:07:49

WSACleanup не обязателен.
Просто это для своей проги.
Другая при инициализации всё равно
произведёт "зачистку".
Ну а если месагбокс не показывает, то
в eax и так нуль.


Дата: Фев 6, 2003 18:04:12

MessageBox не показывает :(((
Вылетает именно на WSAStartup дебагером смотрел......


Дата: Фев 6, 2003 20:16:26

А если заменить

.Data
WSAData STRUCT
wVersion dw 0
wHighVersion dw 0
szDescription db 257 dup(0);256+1
szSystemStatus db 129 dup(0);128+1
iMaxSockets dw 0
iMaxUpdDg dw 0
lpVendorInfo dd 0
WSAData ENDS

На

.Data
WSAData db 398 dup (0)

Что тогда?


Дата: Фев 6, 2003 20:55:53

Тогда работает !!!!!! %((
Так это что, не работает определение струстуры???
Вернее её адресация.........
Вроде правильно задал....
Мож знает кто ??


Дата: Фев 6, 2003 21:30:34

Я не пользуюсь TASM, но проблема наверное в следующем:

.Data
WSAData STRUCT
...
WSAData ENDS

просто определяет структуру, но не инициализирует её. Тогда, правильнее будет так:

.Data
WSADT STRUCT
wVersion dw 0
wHighVersion dw 0
szDescription db 257 dup(0)
szSystemStatus db 129 dup(0)
iMaxSockets dw 0
iMaxUpdDg dw 0
lpVendorInfo dd 0
WSADT ENDS
WSAData WSADT <> ; Или как там в TASM'е?


Дата: Фев 6, 2003 22:27:24

Спасибо, так есть протормозил с определением структур......


Дата: Фев 6, 2003 23:09:37

Пользуйся masm32. Незря ж люди старались,
что б вот такие ньюбисы, как ты, не тормозили.
Все структуры в одном файле да и синтаксис
очень похож на С. Вообщем твоё дело.


Дата: Фев 7, 2003 03:09:07

Только не начинайте... MASM vs. TASM и т.д. и т.п. :)


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.074