Небольшое обновление WinAsm Studio IDE и надстройки FASM. Теперь объявления процедур для фасма обрабатываются корректно (раньше они обрабатывались по тем же правилам, что и для масма, поэтому параметры определялись неверно из-за разного формата их записи) т.е., теперь параметры корректно отображаются в выпадающих списках и в подсказке:
Как обычно - на сайте IDE: 1. http://www.winasm.net/forum/index.php?showforum=1 2. http://www.winasm.net/index.php?ind=downloads&op=section_view&idev=12
на форуме давно уже как не нужно. а в downloads никогда и не нужно было - там выложен полный пакет, настроенный под фасм - в нем и надстройка новая, и студия, и проекты новые. в проектах добавлены практически только настройки - тип процедур "фасм", и только в проектах для виндоус.
Большое спасибо, обновил! А регится там все таки нужно для скачивания и с форума и с доунлоадов... Неплохо бы и здесь в инструментах выложить full package...
значит изменилось - а я и не знал (всегда зареген ) ---------------------------------------------- действительно только что проверил. ну что ж - там свой "хозяин-барин", как и везде
поправил небольшую ошибочку - бряк при запуске линковки в фасме с пустой строкой (выплыл сто лет назад забытый int3) - просто не приходило в голову запускать линковку с пустой строкой - вот и не замечал... немецкий товарищ наткнулся... если нужно - могу собрать "комплексный" (штоп и фасм, и масм сразу)
для начала - к справке FASM-надстройки сделал привесок - советы по конвертированию (полезно знать при работе с чужими проектами, примерами и уроками), а также по добавлению ассемблеров и процессоров. думаю, какой пакет лучше сделать - побольше, поменьше? здесь мне сложно будет обновлять если что... + по самой студии справки на русском нет (меня на все не хватает)
потому что есть две автоочистки первая - глобальная, она поддерживается студией, включается в ее настройках, распространяется на все проекты и очищает с ориентиром на масм. лично меня это не устраивает, поэтому у меня она выключена, но те, кто работают только с масмом - могут ее включить и пользоваться. вторая - "местная", поддерживается надстройкой - она включается в свойствах проекта, а также производит очистку или по умолчанию, или по списку масок. этой я пользуюсь. так вот, при выполнении "Выполнить всё" ("Go All") для режима масм все операции выполняются самой студией внутри, а поскольку в этом случае я не могу узнать из надстройки - завершилось ли оно удачно или нет, то и не хочу из нее выполнять автоочистку, т.к. она должна выполняется только при успешном завершении операции.
несмотря на банальность задачи алгоритм непростой тем более, что оба механизма (и студии, и надстройки) называются "автоочистка" (просто не посетила меня идея как "выделиться")... сложность связана с обилием разных ситуаций, а также с тем, что из надстройки сложно вмешаться в некоторые внутренние алгоритмы студии. правила следующие: 1.МАСМ без надстройки студия выполняет автоочистку своим способом, если стоит птичка "выполнять автоочистку" в настройках студии и операция "выполнить все" завершилась успешно. так же происходит для проектов режима МАСМ при установленной надстройке. при этом студия не анализирует ERRORLEVEL вызываемых инструментов, а анализирует их консольные сообщения. также автоочистка выполняется непосредственно, если явно выбрана опция меню. если установлена надстройка, то непосредственный вызов автоочистки перехватывается и проверяется - если есть список масок в свойствах проекта, то выполняется очистка средствами надстройки, иначе - вызывается "студийная" очистка. 2.Все режимы: при архивировании, сохранении как шаблона и клонировании используется птичка в свойствах проекта, если она включена и в свойствах проекта заданы маски, то выполняется очистка по маскам, иначе вызывается внутрення очистка студии. т.е. совет для МАСМ-а: если пользуетесь глобальной опцией - не используйте маски, иначе в разных случаях очистка будет выполнятся по-разному, если хотите пользоваться масками - не пользуйтесь глобальной опцией. остальные режимы - при операции "выполнить все" производится надстройкой при установленной птичке в свойствах проекта, кроме: 3.AUTO - автоочистка не производится, т.к. невозможно узнать ERRORLEVEL (надстройка анализирует его) 4.BATCH - не производится, если включено "игнорировать ошибки" или выключено "перенаправлять вывод" (также невозможно узнать ERRORLEVEL) 5.МАКЕ - производится всегда 6.FASM - не производится если после fasm-a используется линковка и включено "игнорировать ошибки" причем автоочистка в этих режимах производится после закрытия диалога "успешного завершения" "позитивной" кнопкой (готово, выполнить или отладка), если нажать "отмена" - этого не будет (как и не произойдет автоувеличение версии) (ответ тянет на раздел к справке ============================================ если чего-то не так работает, как здесь описано - прошу описать ситуацию
на форуме висят исходники надстройки ее "сердце" - таблица переходов в файле cmd_tabs.inc: Код (Text): ID_CMD_XTAB cmd_tab,id_tab,cmd_count,\ cclean, IDM_MAKE_CLEAN,, \ f_comp, IDM_MAKE_ASSEMBLE,, \ f_link, IDM_MAKE_LINK,, \ f_go, IDM_MAKE_GO,, \ f_run, IDM_MAKE_EXECUTE,, \ f_debug, IDM_MAKE_DEBUG,, \ f_rc, IDM_MAKE_COMPILERESOURCE,, \ f_cust, 0,f_cust_id, \ f_scan, 0,f_scan_id, \ f_env, 0,f_env_id, \ r_exp, IDM_RESOURCES_DEFINITIONSMANAGER,, \ s_rel, IDM_MAKEACTIVERELEASEVERSION,, \ s_deb, IDM_MAKEACTIVEDEBUGVERSION,, \ pprop, IDM_PROJECT_PROPERTIES,, \ hostm, 0,hostm_id, \ show_out, 0,show_out_id, \ a_create, 0,a_create_id, \ a_convert, 0,a_convert_id, \ a_archive, 0,a_archive_id, \ a_clone, 0,a_clone_id, \ a_sv_tmpl, 0,a_sv_tmpl_id, \ a_of_curr, 0,a_of_curr_id, \ a_of_proj, 0,a_of_proj_id, \ a_of_tmpl, 0,a_of_tmpl_id, \ a_of_cach, 0,a_of_cach_id, \ a_favorit, 0,a_favorit_id, \ a_op_ext, 0,a_op_ext_id, \ del_proj, 0,del_proj_id, \ f_cr_emb, IDM_NEWPROJECT,, \ rem_file, IDM_PROJECT_REMOVEFILE,, \ save_start, IDM_SAVEPROJECTAS,, \ save_start, IDM_PROJECT_RENAMEPROJECT левая колонка - метки в коде, справа - опции меню (встроенные и добавленные). т.е. при желании отсюда легко попасть к месту в коде, где чего-то перехватывается и обрабатывается
Если можно, пара вопросов не по надстройке. Почему изменение опции "Pelle Tools" задействуется только при переоткрытии проекта? Почему я не могу использовать "Debug" при разработке DLL? Почему в режиме MASM нельзя указать Command Line для "Go All" ? Почему в режиме MASM не появляется диалог "Операция завершена успешно" после сборки? Вроде все
я вообще-то ими не пользовался никогда, поэтому может и не в курсе. возможно, что изменение этой опции на встроенном диалоге свойств (из студии) вступает в силу сразу, а на расширенном (из надстройки) - нет, так как надстройка только изменяет флаг в проекте, а механизма сообщить студии, что свойства проекта изменились, (кроме его перезагрузки) нет. это, кстати, может относиться и к некоторым другим свойствам - не на все из них студия экспортирует указатели. не понял, не работает переключение Debug/Release? в масме? (в фасме точно работает, т.к. сама надстройка - это длл, которую я постоянно в разных версиях собираю) потому что это в самой студии не предусмотрено, это чисто фичи надстройки. но и это не проблема - проекты масма можно прекрасно собирать в режиме batch со всеми недостатками и преимуществами. щас подготовлю примерчик
Нет, я имею ввиду Make->Debug (Ctrl+F9). Было бы неплохо подгружать скомпиленную DLL в OllyDbg или назначить дебаггером свой лоадер...
прилагаю примерчик: масм через пакетный режим а также: полный пакет WinAsm Studio 5.1.7.0 специально для васма. если уважаемые админы выложат в инструменты - будем признательны. ====================================== заменил на новый. можно заменять в инструментах. -------------------------------------------------