Многие личности в комментариях на блоге спрашивают, как скомпилировать какой-нибудь исходник masm32. Чтобы решить этот вопрос, собрал небольшой комплект для быстрой компиляции, не требующий установки. Комплект содержит 64-байтный стаб, ассемблер последней версии, патченный линкер, не оставляющий в exe-файлах сигнатуры с информацией о компьютере. Бинарные файлы будут очень маленького размера.
Распаковываем архив в какую-либо папку, потом в ту же папку копируем исходники для компиляции (*.asm, иногда *.rc и *.def).
Открываем asm-файл в блокноте, заменяем все строки вида
\masm32\include\***** на include\*****
и
\masm32\lib\***** на lib\*****
Запускаем cmd.bat. В открывшейся командной строке пишем:
make_exe имя_asm_файла - для компиляции простого exe-файла (имеется только файл *.asm);
make_exe_res имя_asm_файла - для компиляции exe-файла с ресурсами (имеются файлы *.asm, *.rc);
make_dll имя_asm_файла - для компиляции простого dll-файла (имеется только файл *.asm и файл *.def);
make_dll_res имя_asm_файла - для компиляции dll-файла с ресурсами (имеются файлы *.asm, *.rc, *.def);
В результате получим exe или dll файл и несколько вспомогательных (*.res), которые можно удалить.
Скачать: RAR
Kaimi помоги плз.Когда захожу в cmd.exe ввожу make_exe имя файла_asm,вылазит надпись:"ML" не является внутренней или внешней командой,исполняемой программой или пакетным файлом. Как это решить?
все разобрался
если ты разобрался может стоило бы рассказать?
vok,
Тут ошибка небольшая.
Вот корректный файл make_exe.bat:
@echo off
cls
SET PATH=C:\Masm32\bin
bin\ML /nologo -c -coff %1.asm
if errorlevel 1 goto terminate
bin\LINK /nologo %1.obj /SUBSYSTEM:WINDOWS /STUB:64stub.exe /FILEALIGN:512 /VERSION:4.0 /MERGE:.rdata=.text /ignore:4078 /RELEASE /BASE:0x400000
if errorLevel 1 goto terminate
echo OK
:terminate
проще воспользоваться файликом с http://sysman.narod.ru/projects/masm32fc/
простота в одном клике =)
Делаю по инструкции, строки вот так оставляю
windows.inc
macros\macros.asm
macros\windows.asm
macros\inject.asm
вот так оставил вот такая ошибка вылазиет
http://s47.radikal.ru/i117/1107/bf/d3a4001aa15f.jpg
Огромное спасибо, очень полезный мануал. Только путь направить в правильное русло:
SET PATH=D:\compiler_minimal\bin