Вопросы по FASM
> Как получить параметры командной строки
> Как линковать ресурсы
> Что делает команда test
> Как выделить своей программе участок памяти, например в 10Мб
> Как записать в файл несколько одинаковых строк (_lwrite-пишет много и бесконца, а WriteFile-пишет только один раз)
> Как записать структуру типа WndClass(Ex)
> Существует ли виндовская функция для перевода числа в строку и\или обратно (как IntToStr\StrToInt в Delphi)
> Как сделать генератор (псевдо)случайных чисел
> Как написать UDP сервер, при помощи Winsock (я пробовал, но глючил на функции bind)
Если не трудно, помогите пожалуйста.
2)
3) Команда test аналогична and без занисения результата в регистры.
4) В виндоусе AllocMem
5)
6)
7) Сущществует. prints в строку обратно непомню.
8) По формулам на сайтах с алгоритмами есть, можно из дельфи скопировать. Кнут искуство программирования почитай.
9) Отлаживай.
1. в Windows функция GetCommandLine (наиболее простой способ)
2. в папке EXAMPLES есть пример MINIPAD, посмотри как там ресурсы делаются
6. в файле win32a.inc всё есть.
а теперь не по FASM
3. Надо сначала посмотреть описание команды в справочнике, а потом задавать вопрос на форуме
4. в windows это VirtualAlloc, если память надо выделять часто и маленькие куски, то HeapAlloc
5. вызови WriteFile несколько раз
7. справочники, гугль и MSDN рулят
8,9 Pavia всё сказал
Здесь :). Сама вижуал студия к нему необязательна - работает и отдельно.
AllocMem это не то. тебе надо VirtualAlloc.
самый лучший справочник это google.com. вводишь имя нужной тебе функции и первая ссылка - это ссылка на MSDN! в MSDN всё написано.
ahilles - Если я не ошибаюсь MSDN написан на англиском языке, или google также и переводит статьи?
1)как линковать ресурсы к приложению (значок например)
2)какие есть директивы компилятора
3)как узнать текущее системное время
3 пункт очень важен для меня, помогите плз.
1) .rc компилятором ресуросов преобразуется в .res, затем .res даешь на вход линкеру. Так в масм. Есть все основания полагать что в фасм также
2) Компилятора? Может ассемблера?
3) Зависит от операционной среды в которой будет работать программа. В общем случае - системным вызовом. Для Windows - GetLocalTime()
2)какие есть директивы компилятора
какого компилятора? или какого ассемблера? компиляторы бывают разные и ассемблеры тоже
1) У меня есть исходник от FASM, так там как-то линкуется непосредственно файл *.ico (там так и написано)
2)Ну да, это вопрос терминологии
3)GetLocalTime вроде бы возвращает значение в милисекундах от запуска ОСи (так написано у мя в справочнике), или я снова ошибся
ahilles:
Ассемблер FASM, он же там и компилятор (2 в 1 как Delphi или C++).
------------------
Очередной тупой вопрос:
Значит сижу вчера, гадаю на процессоре, и понимаю, что хорошо бы написать DLL-ку да с invokашками (в смысле чтобы вызватья их мог из программы), но надписть типа "FORMAT DLL" вызвала ругань со стороны FASM, "FORMAT LIBRARY" тоже не пошёл. В общем я не знаю как, помогите плз.
P.S. пожалуйста не ругайтесь за большое количество глупых вопросов, я ведь не волшебник, только учусь :)
ahilles:
Ассемблер FASM, он же там и компилятор (2 в 1 как Delphi или C++).
в FASM все параметры задаются в самом исходнике. Впрочем, у него есть
два параметра командной строки, но они НИКАК не влияют на программу.
Очередной тупой вопрос:
Значит сижу вчера, гадаю на процессоре, и понимаю, что хорошо бы написать DLL-ку да с invokашками (в смысле чтобы вызватья их мог из программы), но надписть типа "FORMAT DLL" вызвала ругань со стороны FASM, "FORMAT LIBRARY" тоже не пошёл. В общем я не знаю как, помогите плз.
DLL на FASM надо объявлять так: format PE GUI 4.0 DLL
посмотри папку EXAMPLES, там есть пример по каждому формату, очень много для себя откроешь.
посмотри папку EXAMPLES, там есть пример по каждому формату, очень много для себя откроешь.
EXAMPLES?! У меня такой нет. Где её достать можно?
Вместе с самим fasm'ом она. Если нет, скачай fasm с flatassembler.net (last update: 15 November 2008!) (а ещё там отдельно есть раздел с примерами).
[quote=FASM manual]
3.1.6 Resources
There are two ways to create resources, one is to include the external resource
file created with some other program, and the other one is to create resource
section manually. The latter method, though doesn’t need any additional
program to be involved, is more laborious, but the standard headers provide
the assistance – the set of elementary macroinstructions that serve as bricks
to compose the resource section.
[/quote]
Это я и так знаю, мне нужна строчка (или больше) кода, а то надоели "безликие" файлы :)
Там написано[indent]
Есть два метода создания ресурсов: включить внешний файл ресурсов, созданный другой программой, либо создать секцию ресурсов вручную. Последний метод хотя и не требует использования дополнительных программ, но является более трудоёмким; стандартные заголовки предоставляют помощь - набор элементарных макроинструкций, который помогают, как по кирпичикам, составить секцию ресурсов.
[/indent]Второй метод показан в примере Minipad, первый (из FAQа):
section '.rsrc' data readable resource from 'my.res'
А про паскалеподобность - это такая шутка, как в анекдоте.