| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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 \= Приношу извинения за дезинформацию и беспокойство. :[ |