flat assembler
Message board for the users of flat assembler.
Index
> Windows > ‘file not found’ error of include ‘win32a.inc’
leopard Joined: 26 Oct 2007 |
leopard 26 Oct 2007, 02:53 Hello, there, and test compile the sample file of its own contained ‘beer.asm, help, how to fix this? thanx
|
26 Oct 2007, 02:53 |
rhyno_dagreat Joined: 31 Jul 2006 |
rhyno_dagreat 26 Oct 2007, 02:56 Easy, take the win32a.inc file and any files associated with it and move it into the same folder as beer.asm and it should compile.
|
26 Oct 2007, 02:56 |
leopard Joined: 26 Oct 2007 |
leopard 26 Oct 2007, 02:59 wow, well, but if I have to such hand work task every time I compile an asm file ?
|
26 Oct 2007, 02:59 |
vid Joined: 05 Sep 2003 |
vid 26 Oct 2007, 03:11 you have to set environment variable «INCLUDE» to FASM includes, not variable «PATH».
|
26 Oct 2007, 03:11 |
rhyno_dagreat Joined: 31 Jul 2006 |
rhyno_dagreat 26 Oct 2007, 03:12 Or, you could do it VID’s way. I just recall that’s how I did it.
|
26 Oct 2007, 03:12 |
leopard Joined: 26 Oct 2007 |
leopard 26 Oct 2007, 03:17 thank you guys, but, I’m totally a newbie in fasm, can you tell me bit more detail how to do that ? thanx
|
26 Oct 2007, 03:17 |
LocoDelAssembly Joined: 06 May 2005 |
LocoDelAssembly 26 Oct 2007, 03:28
|
26 Oct 2007, 03:28 |
leopard Joined: 26 Oct 2007 |
leopard 26 Oct 2007, 03:59 thank you, it works! It works only when I click the fasmw.exe in the file manager, Just can’t tell why ? well, it works at least ^^;
|
26 Oct 2007, 03:59 |
vid Joined: 05 Sep 2003 |
vid 26 Oct 2007, 04:36 after you change env. variables, try to restart all apps. For example if you start CMD.exe, then change env. variables, and then start FASMW from still running CMD, it will still have old env. variables. This is because every process inherits env variables from it’s parent process.
|
26 Oct 2007, 04:36 |
leopard Joined: 26 Oct 2007 |
leopard 26 Oct 2007, 04:46 Yes, I have already restarted the cmd & the fasmw, the error is still there, should I have to edit some env. variables of the cmd or xp ? maybe this is not important for programming.
|
26 Oct 2007, 04:46 |
vid Joined: 05 Sep 2003 |
vid 26 Oct 2007, 04:50 do you start FASMW from directory where FASMW.INI resides? don’t do this: instead do: > cd c:fasmw > fasmw.exe this could be the problem.
|
26 Oct 2007, 04:50 |
leopard Joined: 26 Oct 2007 |
leopard 26 Oct 2007, 04:55 yes, I start the fasmw from: run fasmw in the installtion folder, it compiles correctly
|
26 Oct 2007, 04:55 |
LocoDelAssembly Joined: 06 May 2005 |
LocoDelAssembly 26 Oct 2007, 12:01 Check if in «the very first place» you have a file named «FASMW.INI», if it is the case then the problem is not executing FASMW.EXE in its own directory and hence the IDE doesn’t see any INI file and thus it creates a default file at the current directory.
|
26 Oct 2007, 12:01 |
tangent Joined: 21 Nov 2007 |
tangent 21 Nov 2007, 06:58 i’d suggest not using fasmw, seeing as how avg picks it up with Obfustat.ZRC cd c:develfasminclude
..fasm ..test.asm
pause
|
21 Nov 2007, 06:58 |
LocoDelAssembly Joined: 06 May 2005 |
LocoDelAssembly 21 Nov 2007, 13:53
Yes, AVG is an IDIOT, but can’t be instructed to ignore an let you use FASMW anyway? If not then I change the suggestion to not use AVG instead.
|
21 Nov 2007, 13:53 |
vid Joined: 05 Sep 2003 |
vid 21 Nov 2007, 14:54 yeah, use NOD. Slovaks can make better AVs than Czechs
|
21 Nov 2007, 14:54 |
Forum Rules:
You cannot post new topics in this forum |
-
Всем привет.
не получается запустить fasm тз ide.. выдаёт error: file not foundможет нужно какие нибуть переменные окружения выставить? может есть у кого батник, выложите плиз
-
wasm_test
wasm test user
- Публикаций:
-
0
- Регистрация:
- 24 ноя 2006
- Сообщения:
- 5.582
хм.. а попродробнее?
зы. попробуй удалить fasmw.ini
-
Great оперативно овечаете..)
буре файл hello который в комплекте с фасмом идет копирую в директорию где лежит ide (самая верхняя получается) открываю ide выбираю в меню «опен», исходник в айдэе, нажимаю в меню run «compile», вылазит маленькое окно с надписью Error: file not found.
я его скачал, разахивировал и больше не делал ничего..
-
twgt
New Member
- Публикаций:
-
0
- Регистрация:
- 15 янв 2007
- Сообщения:
- 1.494
Конечно он не знает где у тебя инклуды лежат.
-
ко всем папкам которые в папке инклюде лежат прописывать путь или достаточно к ведней папке прописать путь? C:fasmwINCLUDE
только к инклюидам нужно прописывать?
-
twgt
New Member
- Публикаций:
-
0
- Регистрация:
- 15 янв 2007
- Сообщения:
- 1.494
Надо в мой компьютер>свойства>дополнительно>переменные среды зайти и задать новую
например
имя:fasminc
значение:c:fasmтогда в исходниках
надо писать так:
include ‘%fasminc%win32a.inc’ -
twgt
New Member
- Публикаций:
-
0
- Регистрация:
- 15 янв 2007
- Сообщения:
- 1.494
Это я написал как вариант, можно в fasmw.ini прописывать, но я не знаю как.
А можно и полный путь указывать. -
wasm_test
wasm test user
- Публикаций:
-
0
- Регистрация:
- 24 ноя 2006
- Сообщения:
- 5.582
ааа, так он хидер найти не может… блин так бы и сказал. тогда прописывай полный путь
-
twgt
New Member
- Публикаций:
-
0
- Регистрация:
- 15 янв 2007
- Сообщения:
- 1.494
надо указывать путь к папке include
я там не совсем точно написал, в качестве значения переменной среды
укажи C:fasmwINCLUDE -
wasm_test
wasm test user
- Публикаций:
-
0
- Регистрация:
- 24 ноя 2006
- Сообщения:
- 5.582
-
угу спасибо помогло, а в ini который к ide я тож как только не пропобавал, не получается, но одно я понял, нужно вписывать туда что либо, до открытия ide
-
twgt если дорубишься как делать отпишись, ок? а то у меня проблема с английским..
-
twgt
New Member
- Публикаций:
-
0
- Регистрация:
- 15 янв 2007
- Сообщения:
- 1.494
Млин, Томаз — редиска. Вместе с фасмом 1.67.21 подсунул пдф от 1.66! Теперь все понятно =)
гм,туплю, с 1.67.18 то же самое
-
twgt
New Member
- Публикаций:
-
0
- Регистрация:
- 15 янв 2007
- Сообщения:
- 1.494
открываешь fasmw.ini
в конце файла дописываеш
[Enviroment]
Include=c:fasmwincludeи все, теперь %fasminc% можно не писать
-
Great
Он выделяет строчку, в которой указан путь к вложенному файлу, и сообщает «file not found». И тем не менее большинство новичков констатируют, что фасм не работает
-
Asterix
New Member
- Публикаций:
-
0
- Регистрация:
- 25 фев 2003
- Сообщения:
- 3.576
лучше в системные Переменные среды, тогда и в консольной версии можно %fasminc% юзать
-
OioVologda
New Member
- Публикаций:
-
0
- Регистрация:
- 21 ноя 2006
- Сообщения:
- 91
Однако потом большинство все-таки рабираются в чем проблема
Сообщение было отмечено ФедосеевПавел как решение
Решение
Система инклуд в FASM чуть запутанная,
что порождает некоторые вопросы при программировании по винду.
Например, могут возникнуть проблемы импорта функций, если структура программы не соответствует требованиям компилятора. Когда-то исследовал содержимое его файлов и обнаружил следующею закономерность — может кому пригодится..
Значит дополняем INI-файл секцией ‘Environment’ как описано выше, и теперь FASM находит инклуды только по имени, без полного пути. А вот дальше интересней..
Вызывать в шапке программы ‘win32
a.inc’ нет никакого смысла,
т.к. в своём теле этот инклуд просто вызывает макросы и их описатели:
Содержимое win32a.inc
Assembler | ||
|
Значит идём дальше и открываем следующий по списку ‘win32
ax.inc’.
В нём описываются несколько макросов, а в начале и конце можно обнаружить следующие строки.
То-есть ’32ах’ вызывает ’32а’:
Assembler | ||
|
Судя по содержимому инклуда ‘win32ax.inc’ выходит,
что если вызвать в исходнике этот файл, то можем пользоваться укороченными директивами, при этом если укажем в конце .end метка
, то отпадает надобность в импорте буквально любой из задействованных в исходнике API-функций — макрос ‘.end’ сделает это за нас. Например, исходник чтения строки из реестра может быть оформлен так (замечу, что я не указываю секцию импорта, а компиль добавит её сам):
Assembler | ||
|
Таким образом мы лишились головной боли по импорту, но приобрели зубную боль, связанную с импортом отсутствующих в перечисленных библиотеках функций, ведь по-умолчанию FASM импортирует не все DLL-ки винды, а только 8 из них. К примеру, как теперь импортировать удобные для нас функции prinf/scanf
из либы msvcrt.dll, ведь её нет в списке макроса ‘.end’?
Думаю не трудно догадаться, что решение лежит на поверхности и я не буду его здесь приводить. Отмечу лишь, что полный список импортируемых функций из этой библиотеки можно получить в Тотале (C:WINDOWSsystem32msvcrt.dll), по клавише [Ctrl+Q] на вкладке Import/Export. После всех манипуляций, вы должны добавить в макрос ‘.end’ девятым файлом include 'api/msvcrt.inc'
2
Привет. Прошу прощение за долгое отсутствие новых материалов на блоге. Всё это гадская работа виновата. Итак, приступим к настройке!
• Скачиваем с офф.сайта вот этот архив: пакет RadASM – он содержит файлы поддержки языков ассемблеров, таких как MASM, FASM, TASM, NASM… Нам, из этого архива, нужны только файлы и папки, в названиях которых, наш пытливый мозг может обнаружить вхождения подстроки “fasm”. Эти файлы и папки нужно записать в корень директория с установленным RadAsm! Например, RadAsm у нас установлен в: D:UtilitesRadAsm – значит туда и кидаем следующие файлы:
1. Папка FASM полностью в D:UtilitesRadAsm
2. Файл fasm.ini тоже кидаем в D:UtilitesRadAsm
3. Файл fasm.ct из папки Addins кидаем в D:UtilitesRadAsmAddins
• Скачиваем сам компилятор, если не скачали с сайта http://www.flatassembler.net/download.php и открываем архив. Из него нам нужны вот эти файл и папка:
1. Файл FASM.EXE пишем в D:UtilitesRadAsm
2. Папку INCLUDE засунем в D:UtilitesRadAsm
Этим мы переписали сам компилятор ассемблера и директорию с инклудниками в папку с RadAsm.
• Качаем GoRC.exe. GORC – это компилялка ресурсов. Архив распаковываем ровно в ту папку, куда записывали всё до этого, всмысле вот сюда: D:UtilitesRadAsm
• Открываем RadAsm.exe | Настройки | Programming Languages | Добавляем fasm.ini | Жмём Add | OK
• Создаём новый проект, выбираем из списка компилятор fasm! Выбираем шаблон win32dlg.tpl. Теперь удаляем в процедуре DlgProc директиву enter, а директиву return меняем на ret! Тем самым, должны получить следующий код процедуры DlgProc:
proc DlgProc,hWnd,uMsg,wParam,lParam
push edi esi ebx
; удалили enter
mov eax,[uMsg]
cmp eax,WM_COMMAND
je jCOMMAND
cmp eax,WM_INITDIALOG
je jINITDIALOG
cmp eax,WM_CLOSE
je jCLOSE
xor eax,eax
jmp finishjINITDIALOG:
mov eax,[hWnd]
mov [gWnd],eaxmov eax,1
jmp finishjCOMMAND:
mov eax,[wParam]
cmp eax,1000
je a1000
xor eax,eax
jmp finisha1000:
invoke SendMessage,[hWnd],WM_CLOSE,0,0
mov eax,1
jmp finishjCLOSE:
invoke EndDialog,[hWnd],0
mov eax,1finish:
pop ebx esi edi
ret
endp
• Ассемблируем проект! Всё должно получиться, и вы увидите простую форму с одной кнопкой. Если вам что нибудь не ясно – спрашивайте, не стесняйтесь. Я всегда рад общению. Настройка RadAsm+FASM успешно завершена.
Понравилась заметка? Хочешь продолжать читать мой блог? Тогда, подпишись на мою RSS-ленту новостей! Теперь ты не пропустишь возможность почитать новенькие заметки, на Блоге для Программистов!
This entry was posted on 24 февраля, 2009 в 8:53 пп and is filed under Ассемблер.
You can follow any responses to this entry through the RSS 2.0 feed.
You can leave a response, или trackback from your own site.
|
|
|
Перед отправкой сообщения внимательно прочтите правила раздела!!!
1. Запрещается обсуждать написание вирусов, троянов и других вредоносных программ!
2. Помните, что у нас есть FAQ раздела Assembler и Полезные ссылки. Посмотрите, возможно, там уже имеется решение вашего вопроса.
3. Настоятельно рекомендуем обратить особое внимание на правила форума, которые нарушаются чаще всего:
3.1. Заголовок темы должен кратко отражать её суть. Темы с заголовками типа «Срочно помогите!» или «Ассемблер» будут отправляться в Корзину для мусора.
3.2. Исходники программ обязательно выделяйте тегами [code]…[/code] (одиночные инструкции можно не выделять).
3.3. Нежелательно поднимать старые темы (не обновлявшиеся более года) без веской на то причины.
Не забывайте также про главные Правила форума!
Добро пожаловать и приятного вам общения!!!
Fasm
, компилятор выдает ошибку
- Подписаться на тему
- Сообщить другу
- Скачать/распечатать тему
|
|
здравствуйте ,может направите меня на путь истинный ,. пробую скомпилировать програмку include ‘%fasminc%/win32ax.inc’ .data Caption db ‘Моя первая программа.’,0 Text db ‘Всем привет!’,0 .code start: invoke MessageBox,0,Text,Caption,MB_OK invoke ExitProcess,0 .end start
далее при сохранении указываю папку , даю произвольное имя , почему то выдает какую ошибку типа файл не найден , что делать ? |
shm |
|
Цитата stalker_t2010 @ 31.12.12, 12:06 то выдает какую ошибку типа файл не найден , что делать ? Стандартная
блокнот, что идет к фасму глючный еще. Поэтому рекомендую компилить вручную. include ‘includewin32ax.inc’
если конечно у тебя файлы в include format PE GUI
И прочти уж наконец инструкцию. Сообщение отредактировано: shm — 31.12.12, 12:18 |
stalker_t2010 |
|
компилить вручную это как примерно , а то я вообще чайник , нужно именно здесь(fasm) научиться |
shm |
|
открываешь консоль, переходишь в каталог с фасмом (команда cd) и пишешь: fasmw hello.asm hello.exe Добавлено 31.12.12, 13:09 Сообщение отредактировано: shm — 31.12.12, 13:09 |
stalker_t2010 |
|
да с этим запустилось include ‘includewin32ax.inc’ |
0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
0 пользователей:
- Предыдущая тема
- Assembler
- Следующая тема
[ Script execution time: 0,0235 ] [ 15 queries used ] [ Generated: 9.02.23, 16:33 GMT ]