Fasm include win32a inc error file not found

'file not found' error of include 'win32a.inc'

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
Posts: 6

leopard 26 Oct 2007, 02:53

Hello, there,

I have download the fasm for windows 1.67.23 and first time run the fasm for windows xp, after set the path to:

C:WINDOWSsystem32;C:WINDOWS;C:WINDOWSSystem32Wbem;c:programmingsfasmwbi

n;c:programmingsfasmwbininclude

and test compile the sample file of its own contained ‘beer.asm,

but always the same ‘error: file not found’ of include ‘win32a.inc’

help, how to fix this?

thanx

Post
26 Oct 2007, 02:53

rhyno_dagreat

Joined: 31 Jul 2006
Posts: 487
Location: Maryland, Unol Daleithiau

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.

Post
26 Oct 2007, 02:56

leopard

Joined: 26 Oct 2007
Posts: 6

leopard 26 Oct 2007, 02:59

wow, well, but if I have to such hand work task every time I compile an asm file ?

Post
26 Oct 2007, 02:59

vid
Verbosity in development

Joined: 05 Sep 2003
Posts: 7105
Location: Slovakia

vid 26 Oct 2007, 03:11

you have to set environment variable «INCLUDE» to FASM includes, not variable «PATH».

Post
26 Oct 2007, 03:11

rhyno_dagreat

Joined: 31 Jul 2006
Posts: 487
Location: Maryland, Unol Daleithiau

rhyno_dagreat 26 Oct 2007, 03:12

Or, you could do it VID’s way. I just recall that’s how I did it. Razz

Post
26 Oct 2007, 03:12

leopard

Joined: 26 Oct 2007
Posts: 6

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

Post
26 Oct 2007, 03:17

LocoDelAssembly
Your code has a bug

Joined: 06 May 2005
Posts: 4624
Location: Argentina

LocoDelAssembly 26 Oct 2007, 03:28

The example source provided with this version require you have environment

variable INCLUDE set to the path of the include directory, which is the

part of flat assembler package. If such variable already exists in your system

and contains paths used by some other program, it’s enough to add the new

path to it (the different paths should be separated with semicolons). If you

don’t want to define such variable in the system, or don’t know how to do it,

you can set it for the flat assembler IDE only by editing the fasmw.ini file

in its directory (this file is created by fasmw.exe when it’s executed, but you

can also create it by yourself). In this case you should add the Include value

into the Environment section. For example, when you have unpacked the

flat assembler files into the c:fasmw directory, you should put the following

two lines into your c:fasmwfasmw.ini file:

[Environment]

Include = c:fasmwinclude

Post
26 Oct 2007, 03:28

leopard

Joined: 26 Oct 2007
Posts: 6

leopard 26 Oct 2007, 03:59

thank you, it works!

It works only when I click the fasmw.exe in the file manager,

but if I run the program by type ‘fasmw’ from the command prompt, it won’t work ?!

Just can’t tell why ? well, it works at least ^^;

Post
26 Oct 2007, 03:59

vid
Verbosity in development

Joined: 05 Sep 2003
Posts: 7105
Location: Slovakia

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.

Post
26 Oct 2007, 04:36

leopard

Joined: 26 Oct 2007
Posts: 6

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.

Post
26 Oct 2007, 04:46

vid
Verbosity in development

Joined: 05 Sep 2003
Posts: 7105
Location: Slovakia

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.

Post
26 Oct 2007, 04:50

leopard

Joined: 26 Oct 2007
Posts: 6

leopard 26 Oct 2007, 04:55

yes, I start the fasmw from:

c:Documents and Settingsvm> (the very first place when I start cmd.exe)

the vm is my username, and the cmd env. is the system wide:

C:WINDOWSsystem32;C:WINDOWS;C:WINDOWSSystem32Wbem;c:programmingsfasmwbin

and FASMW.INI & fasmw.exe are in the same folder as default.

run fasmw in the installtion folder, it compiles correctly

Post
26 Oct 2007, 04:55

LocoDelAssembly
Your code has a bug

Joined: 06 May 2005
Posts: 4624
Location: Argentina

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.

Post
26 Oct 2007, 12:01

tangent

Joined: 21 Nov 2007
Posts: 9

tangent 21 Nov 2007, 06:58

i’d suggest not using fasmw, seeing as how avg picks it up with Obfustat.ZRC

test.bat:

cd c:develfasminclude
..fasm ..test.asm
pause    

Post
21 Nov 2007, 06:58

LocoDelAssembly
Your code has a bug

Joined: 06 May 2005
Posts: 4624
Location: Argentina

LocoDelAssembly 21 Nov 2007, 13:53


i’d suggest not using fasmw, seeing as how avg picks it up with Obfustat.ZRC

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.

Post
21 Nov 2007, 13:53

vid
Verbosity in development

Joined: 05 Sep 2003
Posts: 7105
Location: Slovakia

vid 21 Nov 2007, 14:54

yeah, use NOD. Slovaks can make better AVs than Czechs Razz

Post
21 Nov 2007, 14:54
Forum Rules:

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum

  1. Всем привет.
    не получается запустить fasm тз ide.. выдаёт error: file not found

    может нужно какие нибуть переменные окружения выставить? может есть у кого батник, выложите плиз


  2. wasm_test

    wasm_test

    wasm test user

    Публикаций:

    0

    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582

    хм.. а попродробнее?

    зы. попробуй удалить fasmw.ini

  3. Great оперативно овечаете..)

    буре файл hello который в комплекте с фасмом идет копирую в директорию где лежит ide (самая верхняя получается) открываю ide выбираю в меню «опен», исходник в айдэе, нажимаю в меню run «compile», вылазит маленькое окно с надписью Error: file not found.

    я его скачал, разахивировал и больше не делал ничего..


  4. twgt

    twgt

    New Member

    Публикаций:

    0

    Регистрация:
    15 янв 2007
    Сообщения:
    1.494

    Конечно он не знает где у тебя инклуды лежат.

  5. ко всем папкам которые в папке инклюде лежат прописывать путь или достаточно к ведней папке прописать путь? C:fasmwINCLUDE

    только к инклюидам нужно прописывать?


  6. twgt

    twgt

    New Member

    Публикаций:

    0

    Регистрация:
    15 янв 2007
    Сообщения:
    1.494

    Надо в мой компьютер>свойства>дополнительно>переменные среды зайти и задать новую
    например
    имя:fasminc
    значение:c:fasm

    тогда в исходниках
    надо писать так:
    include ‘%fasminc%win32a.inc’


  7. twgt

    twgt

    New Member

    Публикаций:

    0

    Регистрация:
    15 янв 2007
    Сообщения:
    1.494

    Это я написал как вариант, можно в fasmw.ini прописывать, но я не знаю как.
    А можно и полный путь указывать.


  8. wasm_test

    wasm_test

    wasm test user

    Публикаций:

    0

    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582

    ааа, так он хидер найти не может… блин так бы и сказал. тогда прописывай полный путь


  9. twgt

    twgt

    New Member

    Публикаций:

    0

    Регистрация:
    15 янв 2007
    Сообщения:
    1.494

    надо указывать путь к папке include
    я там не совсем точно написал, в качестве значения переменной среды
    укажи C:fasmwINCLUDE


  10. wasm_test

    wasm_test

    wasm test user

    Публикаций:

    0

    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582

  11. угу спасибо помогло, а в ini который к ide я тож как только не пропобавал, не получается, но одно я понял, нужно вписывать туда что либо, до открытия ide

  12. twgt если дорубишься как делать отпишись, ок? а то у меня проблема с английским..


  13. twgt

    twgt

    New Member

    Публикаций:

    0

    Регистрация:
    15 янв 2007
    Сообщения:
    1.494

    Млин, Томаз — редиска. Вместе с фасмом 1.67.21 подсунул пдф от 1.66! Теперь все понятно =)

    гм,туплю, с 1.67.18 то же самое


  14. twgt

    twgt

    New Member

    Публикаций:

    0

    Регистрация:
    15 янв 2007
    Сообщения:
    1.494

    открываешь fasmw.ini
    в конце файла дописываеш
    [Enviroment]
    Include=c:fasmwinclude

    и все, теперь %fasminc% можно не писать

  15. Great

    Он выделяет строчку, в которой указан путь к вложенному файлу, и сообщает «file not found». И тем не менее большинство новичков констатируют, что фасм не работает :)


  16. Asterix

    Asterix

    New Member

    Публикаций:

    0

    Регистрация:
    25 фев 2003
    Сообщения:
    3.576

    лучше в системные Переменные среды, тогда и в консольной версии можно %fasminc% юзать ;)


  17. OioVologda

    OioVologda

    New Member

    Публикаций:

    0

    Регистрация:
    21 ноя 2006
    Сообщения:
    91

    Однако потом большинство все-таки рабираются в чем проблема :)


WASM

Лучший ответ Сообщение было отмечено ФедосеевПавел как решение

Решение

Система инклуд в FASM чуть запутанная,
что порождает некоторые вопросы при программировании по винду.
Например, могут возникнуть проблемы импорта функций, если структура программы не соответствует требованиям компилятора. Когда-то исследовал содержимое его файлов и обнаружил следующею закономерность — может кому пригодится..

Значит дополняем INI-файл секцией ‘Environment’ как описано выше, и теперь FASM находит инклуды только по имени, без полного пути. А вот дальше интересней..

Вызывать в шапке программы ‘win32

a.inc’ нет никакого смысла,
т.к. в своём теле этот инклуд просто вызывает макросы и их описатели:

Содержимое win32a.inc

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
; Win32 programming headers (ASCII)
include 'macro/struct.inc'
include 'macro/proc32.inc'
include 'macro/com32.inc'
include 'macro/import32.inc'
include 'macro/export.inc'
include 'macro/resource.inc'
 
struc TCHAR [val] { common match any, val { . db val }
               match , val { . db ? } }
 
include 'equates/kernel32.inc'
include 'equates/user32.inc'
include 'equates/gdi32.inc'
include 'equates/comctl32.inc'
include 'equates/comdlg32.inc'
include 'equates/shell32.inc'
include 'equates/wsock32.inc'
 
macro api [name] { if used name
            label name dword at name#A
           end if }

Значит идём дальше и открываем следующий по списку ‘win32

ax.inc’.
В нём описываются несколько макросов, а в начале и конце можно обнаружить следующие строки.
То-есть ’32ах’ вызывает ’32а’:

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
; Extended Win32 programming headers (ASCII)
include 'win32a.inc'
include 'macro/if.inc'
.....
; Что делать, если встретишь директиву 'Import'
macro import lib,[functions]
{ common macro import_#lib { import lib,functions } }
 
; Что делать, если встретишь 'API'
macro api [functions]
{ common macro all_api { all_api
              api functions } }
 
; Что делать, если встретишь 'ALL-API'
macro all_api {}               
 
include 'api/kernel32.inc'     ;<----; ВНИМАНИЕ!!!
include 'api/user32.inc'             ; Подключить все функции из указанных файлов!
include 'api/gdi32.inc'              ; т.е. вызвав 'win32ах.inc' не нужно вызывать остальные,
include 'api/advapi32.inc'           ; но при условии, что используем макрос '.end' (см.ниже)!
include 'api/comctl32.inc'
include 'api/comdlg32.inc'
include 'api/shell32.inc'
include 'api/wsock32.inc'
 
purge import,api                     ; (отменить последнее определение)
 
; А здесь макросы для описания укороченых директив,
; из которых интересна только директива '.end' - посмотрите, что она делает!!!
; (границы каждого макроса определяются фигурными скобками)
;-----------------------------------------------------------
macro .data { section '.data' data readable writeable }
macro .code { section '.text' code readable executable }
macro .end label
{    entry label
              section '.idata' import data readable writeable
 
library kernel32,'KERNEL32.DLL',
         user32,'USER32.DLL',
           gdi32,'GDI32.DLL',
           advapi32,'ADVAPI32.DLL',
           comctl32,'COMCTL32.DLL',
           comdlg32,'COMDLG32.DLL',
           shell32,'SHELL32.DLL',
           wsock32,'WSOCK32.DLL'
 
        import_kernel32
        import_user32
        import_gdi32
        import_advapi32
        import_comctl32
        import_comdlg32
        import_shell32
        import_wsock32
 
        all_api           ;<-----; Вызываем макрос 'ALL-API' !!!
}                                ; конец макроса '.end'

Судя по содержимому инклуда ‘win32ax.inc’ выходит,
что если вызвать в исходнике этот файл, то можем пользоваться укороченными директивами, при этом если укажем в конце .end метка, то отпадает надобность в импорте буквально любой из задействованных в исходнике API-функций — макрос ‘.end’ сделает это за нас. Например, исходник чтения строки из реестра может быть оформлен так (замечу, что я не указываю секцию импорта, а компиль добавит её сам):

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
format  PE  gui 4.0           ; делаю гуй-приложение
include 'win32ax.inc'         ; волшебный инклуд
 
.data
capt     db   'Читаем из реестра',0            ; заголовок окна
string   db   'Версия BIOS:  '                 ; текст в окне (продолжение в буфере ниже)
buff     db   32 dup(0)                        ; буфер под строку реестра
bSize    dd   32                               ; размер буфера
subKey   db   'HardwareDescriptionSystem',0  ; ветка реестра (раздел - в самой функции)
key      db   'SystemBiosVersion',0            ; выбираем строку в правом окне реестра
hndl     dd   0                                ; дескриптор ветки
type     dd   0                                ; тип данных
 
.code
start:
; Открываем ветку реестра
       invoke   RegOpenKeyEx,HKEY_LOCAL_MACHINE,subKey,0,KEY_ALL_ACCESS,hndl
; Читаем строку реестра в свой буфер
       invoke   RegQueryValueEx,[hndl],key,0,type,buff,bSize
; Выводим строку в окошко
       invoke   MessageBox,0,string,capt,0
       invoke   ExitProcess, 0
.end start                       ;<------; макрос '.end' импортирует функции сам!

Название: reg.png
Просмотров: 293

Размер: 3.1 Кб

Таким образом мы лишились головной боли по импорту, но приобрели зубную боль, связанную с импортом отсутствующих в перечисленных библиотеках функций, ведь по-умолчанию 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 finish

jINITDIALOG:
mov eax,[hWnd]
mov [gWnd],eax

mov eax,1
jmp finish

jCOMMAND:
mov eax,[wParam]
cmp eax,1000
je a1000
xor eax,eax
jmp finish

a1000:
invoke SendMessage,[hWnd],WM_CLOSE,0,0
mov eax,1
jmp finish

jCLOSE:
invoke EndDialog,[hWnd],0
mov eax,1

finish:
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.

    msm.ru

    Нравится ресурс?

    Помоги проекту!

    !
    Перед отправкой сообщения внимательно прочтите правила раздела!!!

    1. Запрещается обсуждать написание вирусов, троянов и других вредоносных программ!
    2. Помните, что у нас есть FAQ раздела Assembler и Полезные ссылки. Посмотрите, возможно, там уже имеется решение вашего вопроса.


    3. Настоятельно рекомендуем обратить особое внимание на правила форума, которые нарушаются чаще всего:
      3.1. Заголовок темы должен кратко отражать её суть. Темы с заголовками типа «Срочно помогите!» или «Ассемблер» будут отправляться в Корзину для мусора.
      3.2. Исходники программ обязательно выделяйте тегами [code][/code] (одиночные инструкции можно не выделять).
      3.3. Нежелательно поднимать старые темы (не обновлявшиеся более года) без веской на то причины.

    Не забывайте также про главные Правила форума!

    Добро пожаловать и приятного вам общения!!! ;)

    >
    Fasm
    , компилятор выдает ошибку

    • Подписаться на тему
    • Сообщить другу
    • Скачать/распечатать тему



    Сообщ.
    #1

    ,
    31.12.12, 12:06

      здравствуйте ,может направите меня на путь истинный ,.
      Система Windows 7 64 bit , установил Fasm flat assembler 1.71.07 for Windows

      пробую скомпилировать програмку

      ExpandedWrap disabled

        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

      далее при сохранении указываю папку , даю произвольное имя , почему то выдает какую ошибку типа файл не найден , что делать ?user posted image


      shm



      Сообщ.
      #2

      ,
      31.12.12, 12:16

        Цитата stalker_t2010 @ 31.12.12, 12:06

        то выдает какую ошибку типа файл не найден , что делать ?

        Стандартная

        IDE

        блокнот, что идет к фасму глючный еще. Поэтому рекомендую компилить вручную.
        А ругается он потому что, скорее всего, не может найти подключаемый include файл.
        пробуй так:

        ExpandedWrap disabled

          include ‘includewin32ax.inc’

        если конечно у тебя файлы в include
        Также добавь в самое начало файла вот это:

        ExpandedWrap disabled

          format PE GUI

        И прочти уж наконец инструкцию.
        С НГ!

        Сообщение отредактировано: shm — 31.12.12, 12:18


        stalker_t2010



        Сообщ.
        #3

        ,
        31.12.12, 12:54

          компилить вручную это как примерно , а то я вообще чайник , нужно именно здесь(fasm) научиться


          shm



          Сообщ.
          #4

          ,
          31.12.12, 13:03

            открываешь консоль, переходишь в каталог с фасмом (команда cd) и пишешь:

            ExpandedWrap disabled

              fasmw hello.asm hello.exe

            Добавлено 31.12.12, 13:09
            А да, в папке с fasm создай свой исходник именем hello.asm скопируй туда свой код, внеси мои правки.

            Сообщение отредактировано: shm — 31.12.12, 13:09


            stalker_t2010



            Сообщ.
            #5

            ,
            02.01.13, 09:52

              да с этим запустилось

              ExpandedWrap disabled

                include ‘includewin32ax.inc’

              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)

              0 пользователей:

              • Предыдущая тема
              • Assembler
              • Следующая тема

              Рейтинг@Mail.ru

              [ Script execution time: 0,0235 ]   [ 15 queries used ]   [ Generated: 9.02.23, 16:33 GMT ]  

              Понравилась статья? Поделить с друзьями:

              Читайте также:

            • Farming simulator 22 ошибка 0xc000007b
            • Farming simulator 22 error data files corrupt please reinstall application
            • Farming simulator 2017 game exe системная ошибка
            • Farm together platform initialization error
            • Farcry3 exe ошибка при запуске приложения 0xc000007b

            • 0 0 голоса
              Рейтинг статьи
              Подписаться
              Уведомить о
              guest

              0 комментариев
              Старые
              Новые Популярные
              Межтекстовые Отзывы
              Посмотреть все комментарии