Сейчас на форуме: hgdagon, asfa, bartolomeo (+4 невидимых) |
![]() |
eXeL@B —› Программирование —› Посмотрите код ПЛЗ |
Посл.ответ | Сообщение |
|
Создано: 20 декабря 2006 14:17 · Личное сообщение · #1 Не могу собрать ............. ошибка ожидание директив + нет import32.lib ![]() ----- RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube ![]() |
|
Создано: 20 декабря 2006 15:19 · Личное сообщение · #2 |
|
Создано: 20 декабря 2006 15:33 · Поправил: Executioner · Личное сообщение · #3 чем собираешь? и как? если МАСМом, то он и не соберет, раз ты не дефинишь MASM. да и с экстерналами чего-то не то... разве ExiutProcess принимает 4 параметра? еще не хватает метки ex1 и переменной o. для чего там это push o непонятно) может должно быть jmp exi и push 0 ? ----- Уважайте других и пишите грамотно. ![]() |
|
Создано: 20 декабря 2006 22:24 · Личное сообщение · #4 |
|
Создано: 21 декабря 2006 08:47 · Личное сообщение · #5 |
|
Создано: 21 декабря 2006 11:52 · Личное сообщение · #6 |
|
Создано: 22 декабря 2006 06:25 · Личное сообщение · #7 |
|
Создано: 22 декабря 2006 09:58 · Личное сообщение · #8 mak пишет: Ну а сейчас то что поправить ??? Формат библиотек импорта MASM'а MASM и Visual C++ могут использовать одинаковые библиотеки импорта, что очень удобно. Микрософтовские библиотеки импорта используют разновидность формата COFF, которое отлично от формата OMF, используемого TASM'ом. По этой причине TASM не может использовать MASM'овские библиотеки импорта и наоборот. Я не буду углубляться в детали строения этих библиотек. Достаточно сказать, что каждая библиотека импорта Microsoft'а содержит информацию о функциях из определенных DLL. Эта информация включает в себя имена функций и общий размер параметров, передаваемых функциям. Если вы пробежитесь по kernel32.lib с помощью hex-редактора, вы найдете найдете в ней следующее: _ExitProcess@4 _CreateProcessA@40 Имена функций имеют префикс '-'. Число, следующее за @ - это общий размер параметров этой функции в байтах. ExitProcess принимает только один параметр dword, поэтому это число равно 4. Почему включается информация о размере параметров? Эта информация используется MASM'ом, чтобы проверить правильность переданных функции параметров, когда та вызывается с помощью ключевого слова 'invoke'. Если вы просто затолкаете параметры в стек инструкцией 'рush' и запустите функцию инструкцией 'call', MASM не будет проверять правильность параметров. Это преимущество делает невозможным создать библиотеки импорта MASM из DLL, потому что DLL не содержит точной информации о размере параметров, передаваемых функции.... Iczelion. © ----- ЗЫ: истЕна где-то рядом, Welcome@Google.com ![]() |
![]() |
eXeL@B —› Программирование —› Посмотрите код ПЛЗ |