· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.ASSEMBLER —› Компиляция под Win32

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


Дата: Июн 10, 2003 15:02:03

Почему при компиляции MASM берет из *.INC файлов только те функции которые используются в тексте программы,
а TASM все?
Как нужно оформить *.INC файл чтобы TASM брал только те функции которые испльзуются в тексте программы?


Дата: Июн 11, 2003 03:53:19

Аноним Июн 10, 2003 15:02:03
а TASM все
Что Вы хотите этим сказать?


Дата: Июн 12, 2003 22:03:17

2 P2M
Он имеет в виду, что TASM включает в себя все, что обьявлено в *.INC - ВСЕ константы, структуры и т.д.
Мое мнение, что это просто крупная ошибка разработчиков TASM'a, т.к. это исправить нельзя (я так думаю, хотя и не уверен - если поднапрячься, то может и можно это исправить).
Для меня, например, это было одной из причин перехода на MASM (другой, было то, что RadAsm, в то время, когда я только начинал свой программерский путь, мог создавать диалоговые окна только в стандарте MASM'a, а для TASM'a приходилось их переправлять ручками - не очень-то было удобно :-( ,а создавать окошки через CreateWindow слишком долго и муторно.).


Дата: Июн 13, 2003 18:20:14

Что имеется в виду под 'включает'?
Допустим есть константа:

WМ_CRЕАТЕ Еqu 1

Разве такая запись попадает в ЕXЕ файл?
То же самое со структурой:

RECT STRUC
left DD ?
tоp DD ?
right DD ?
bottom DD ?
RECT ENDS

ТАСМ использует такую информацию чтобы правильно взять адрес елемента такой структуры или взять размер объекта RECT.

Может я в чем-то ошибаюсь?


Дата: Июн 14, 2003 20:06:13 · Поправил: KiNDeR

Я имел в виду extrn роцедуры.
TASM включает в exe все их имена даже если они не используются. :(
Это не есть гуд, приходиться писать каждый раз новый INC файл.
В MASM такого нет, но TASM на MASM я никогда не променяю!!!!
Sk. Inc. правельно меня понял.


Дата: Июн 15, 2003 00:06:52 · Поправил: Black_mirror

Используй директиву /zn и отладочная инфа вообще включаться не будет. Аналогичная директива есть и у tlink'а. Или ты имеешь ввиду функции из dll? Если так, то можно написать макрос для вызова функций из dll, который при будет устанавливать флаг, что такая-то функция использована, и еще один для создания импорта, который будет включать только те функции которые действительно используются.
Если хочешь могу документацию на русском по tasm'у выслать. Только я уже перешел на fasm. Он хоть и не обладает некоторыми полезными возможностями, зато у него нет ошибок с хеш таблицей, из-за которых tasm иногда умирает при компиляции. Никто с подобным не сталкивался?


Дата: Июн 16, 2003 10:22:23

Black_mirror
Ели не трудно, то вышли документацию.
У тебя есть такие макросы? Или хотябы алгоритм их написания. Если есть вышли тоже.
На любую из этих мыльниц.
ksoft@mail.ru
ilekdim@hotbox.ru


Дата: Июн 16, 2003 18:37:18

Кажется понял... если я объявлю:

extern CreateProcessW : Proc

и не буду использовать CreateProcessW - все равно функция пришьется
из библиотеки импорта. Ну, лишний адрес это не проблема.

Как раз здесь мой новый AsmDev32 будет кстати - код генерируется
только для используемых функций.


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