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

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


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

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

Выпуск № 836
от 25.08.2007, 02:05

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


Вопрос № 98877: Здравствуйте. Помогите скомпилировать прогу в приложении. Текст в приложении приведен для TASM'а. Ошибка: [Tlink] Fatal: 32-bit record encountered in module prog.asm Tasm вообще в состоянии компилировать 32-битные приложения? Мне-то надо имен...

Вопрос № 98.877
Здравствуйте. Помогите скомпилировать прогу в приложении. Текст в приложении приведен для TASM'а. Ошибка:
[Tlink] Fatal: 32-bit record encountered in module prog.asm
Tasm вообще в состоянии компилировать 32-битные приложения? Мне-то надо именно как 32-битное запускать.
Если же компилить в masm'е, то текст проги следующий:
.386
.model flat, stdcall

include masm32includewindows.inc
include masm32includekernel32.inc
include masm32includeuser32.inc

includelib masm32libkernel32.lib
includelib masm32libuser32.lib

.data
Key_SizeE equ 100
Key_Value db Key_SizeE dup (?)
Key_Size dd Key_SizeE
Key_Handle dd 0
Key_Sub db 'HKEY_LOCAL_MACHINESOFTWAREEmSoftRegistEmEditor-4-tm',0
Key_SubKey db 'EmEditor-4-tm',0
Key_Type dd 01;REG_SZ-A null-terminated string
.code
start:
;RegOpenKey()
push offset Key_Handle
push offset Key_Sub
push dword ptr 80000002h;hklm
call RegOpenKeyA
;RegSetValue()
push offset Key_Size
push offset Key_Value
push Key_Type
push offset Key_SubKey
push Key_Handle
call RegSetValueA
;RegCloseKey()
push Key_Handle
call RegCloseKey
;ExitProcess()
push dword ptr 0
call ExitProcess
end start

И ошибки:
prog.obj : error LNK2001: unresolved external symbol ExitProcess
и так 5 раз для всех 5 процедур. И еще:
LINK : error LNK2001: unresolved external symbol _start
prog.exe : fatal error LNK1120: 6 unresolved externals

Приложение:

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

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

Компилятор находится в папке masm32in, все остальное лежит в соответствующих папках (include*.inc и lib*.lib)
У Вас 2-а пути:
1)использовать относительную адресацию файлов:
include ..includeuser32.inc
includelib ..libuser32.lib

2)указывать полный путь:
include c:masm32includeuser32.inc
includelib c:masm32libuser32.lib


PS:
1)для работы с реестром Вам нужны ADVAPI32.DLL и KERNEL32.DLL и совсем не нужна USER32.DLL(Вы не используете фунций из этой библиотеки, зачем её грузить?)
2)TASM32. Описание Assembler Constructor:Программа - интегрированная среда для разработки программ на ассемблере под винды. Имеется : поддержка программ для Tasm, сама среда напоминает известные среды программирования. Запуск программы одной клавишей(F9),вызов отладчика ; подсветка синтаксиса; для непосвящённых(начинающих) существуют меню для создания самых распростронённых команд при помощи мышки и выбора из списков. Присутвует преобразование систем счисления. Шаблоны для com и exe файлов, автоопределение формата; файл может быть написан не обязательно в среде AС. Полная свобода действий для профессиональных программистов и обучающая оболочка для начинающих. Примечание : для работы нужны программы tasm и tlink, которые входят в состав Borland C или Borland Pascal
Вам только осталось скачать, установить и указать конструктору пути к ним.
Удачи!
---------
И только наступив на грабли мы приобретаем драгоценный опыт!
Ответ отправил: Зенченко Константин Николаевич (статус: Специалист)
Ответ отправлен: 19.08.2007, 17:48
Оценка за ответ: 4
Комментарий оценки:
Как быть с ошибкой Bad object file record?


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

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

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

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

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


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


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

В избранное