Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm для начинающих > FASM, DLL и WSOCK


Автор: SomeNoOp 16.6.2007, 13:17
Пишу дллку, в секции .data объявляю:
wsa     WSADATA
sin       sockaddr_in

и в отличии от исполняемого файло, где я делаю то же самое, компилер ругаеться на все эти объявления "illegal instruction"

Вот код:

format PE GUI 4.0 DLL

entry DllEntryPoint

include '..\include\win32a.inc'

section '.data' data readable writeable
     szBuffer                db            255 dup(?)
     WSA                      WSADATA
     sin                         sockaddr_in

section '.code' readable executable

;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

proc DllEntryPoint hInstDLL, fdwReason, lpvReserved
     ret
endp

;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

section '.idata' import data readable
     library  kernel32, 'KERNEL32.DLL',\
              user32,   'USER32.DLL',\
              wsock32,  'WSOCK32.DLL'

include '..\include\api\kernel32.inc'
include '..\include\api\wsock32.inc'

section '.reloc' fixups data discardable

Почему это происходит? Чо за фегня :/  

Автор: drZmeu 22.6.2007, 09:26
Я незнаю насчёт DLL которые пишутся на ASM сам недавно стал заниматся но на Visual C++ я писал DLL которая внедряется в процесс открывает и слушает нужный порт!
Так вот! Програмку выкидывало с ошибкой из-за того что я обьявлял данные в DllMain тоесть у мну была там инструкция WSAStartup а так делать незя подробнее смотри в MSDN + ты ещё должен поставить проверку типа DLL_PROCESS_ATTACH помойму так но скорее всего ошибаюсь!
И там должен создаватся отдельный поток на процедуру где ты подгружаешь библеотеки!!!
Юзай: CreateThRead!!!
Надеюсь что помог хоть чем-то =P
С уважением,
drZmeu.

Автор: SomeNoOp 12.7.2007, 15:40
Огромное спасибо drZmeu, проблему я решил! Но дело было в том, что какой-то редиска, который сидел до меня за компом, поудалял все модули с описанием структур из win32a.inc \= Приношу извинения за дезинформацию и беспокойство. :[

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)