Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Ассемблер? Это просто! Учимся программировать


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler (Ассемблер)

Выпуск № 912
от 27.11.2007, 03:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 361, Экспертов: 20
В номере:Вопросов: 1, Ответов: 1


Вопрос № 110352: Здравствуйте уважаемы эксперты!!! хотел задать вопрос по созданию программ под Win32 на асме...у меня такакя проблема: есть например простой код который (который приведен в приложении) вызывает (или должен ;) ) одну API функцию ExitProcess,вроде она ...

Вопрос № 110.352
Здравствуйте уважаемы эксперты!!! хотел задать вопрос по созданию программ под Win32 на асме...у меня такакя проблема: есть например простой код который (который приведен в приложении) вызывает (или должен ;) ) одну API функцию ExitProcess,вроде она описана директивой как внешняя а также директивой extrn ExitProcess: PROC, а вот тут у меня появляется несколько непоняток: если перед этой директивой написать include w32.inc (функция там упоминается) то при обработке этого кода TASM32 он пишет ошибку **Error** w32.inc(5023) PROCDESC(2) Symbol already different kind: EXITPROCESS хотя во включаемом файле заголовок функции упоминается только 1 раз :( (хотя неважно эта функция или другая от этого ничего не меняется сообщение - он ругается и на нее) если попробовать вместо файла inc включить lib то он (TASM32) пишет **Fatal** import32.inc(4) Line too long :( если же попробовать не указывать директиву include то TASM32 это "съедает" но TLINK32 говорит Unresolved external 'EX ITPROCESS' referenced from module asm.ASM (причем если в командной строке указываешь после файла obj и библиотеку lib которая как написано содержит основные функции API).Я уже пробовал и ключи /mx /ml для TASM32'го но линкер опять же не хочет это понимать :( Объясните пожалуйста может я что то не так делаю в коде может что то свкючаемым файлом или с библиотеками (хотя я брал несколько пакетов TASM и даже тот который распаковывается - ну типа инсталяционный пакет) может для таких случаев надо использовать какие то ключи для TASM32 и TLINK32? :(незнаю но в книгах по асму этому вопросу не сильно уделяют внимания то есть "...типа есть такая вещь вот так указываешь и все работает":( в приложении наверно приведу только код а код включаемого файла все таки не думаю что стоит приводить поскольку он 172 Кб. Помогите разобраться пожалуйста. Заранее благодарен

Приложение:

Отправлен: 21.11.2007, 07:07
Вопрос задал: Arshvin (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Зенченко Константин Николаевич
Здравствуйте, Arshvin!

В Inc-файле функция упоминается один раз, в основной программе один раз-итого два раза. Повторное определение символа(функции, переменной метки). Уберите одно из этих определений или используйте директивы условного ассемблирования:
IFDEF метка/ELSEIFDEF метка — если метка определена;
IFNDEF метка/ELSEIFNDEF метка — если метка не определена;


Для подключения LIB или OBJ файлов есть директива INCLUDELIB, использование вместо неё директивы INCLUDE приводит к тому, что компилятор TASM32 пытается скомпилировать уже скомпилированный файл.
INCLUDE имя_файла — директива, вставляющая в текст программы текст файла аналогично команде препроцессора C #include. Обычно используется для включения файлов, содержащих определения констант, структур и макросов.
INCLUDELIB имя_файла — директива, указывающая компоновщику имя дополнительной библиотеки или объектного файла, который потребуется при составлении данной программы. Наприм ер, если используются вызовы процедур или обращение к данным, определенным в других модулях. Использование этой директивы позволяет не указывать имена дополнительных библиотек при вызове компоновщика.


Для создания Win32 использую такой bat-файл:
tasm32 %1 /m /ml
tlink32 %1 /Tpe /aa /c /x

набирая в командной строке TW Prog01

Удачи!
---------
И только наступив на грабли мы приобретаем драгоценный опыт!
Ответ отправил: Зенченко Константин Николаевич (статус: Специалист)
Ответ отправлен: 21.11.2007, 12:42


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.64 от 24.11.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное