Торможу, блин! Капец! Никак не могу понять синтаксис файлов ресурсов (*.rc). Подскажите, пож, где есть описание или как создать диалог, прописывая все в асм-исходнике. Не могу двигаться дальше, т.к. визуал-дезайнером пользоваться нет никаких сил - душа бунтует!
Ну, *.rc файл нужно компилировать. Компилятором ресурсов. http://msdn.microsoft.com/en-us/library/aa380599(VS.85).aspx А без ресурсов - CreateDialogIndirect
Спасибо за ответ, Partner! Да, я знаю, что компилировать нужно. Но я пользуюсь WinAsm Studio и в ней все делается автоматом. А как создать кнопку на окне? И если можно с примером в исходнике. Только пожалуйста без *.rc фалов.
Исходников нету. Читай доку к CreateDialogIndirect/CreateDialogIndirectParam. Там ничего сложного. http://msdn.microsoft.com/en-us/library/ms645436
Огромное спасибо, все нашел! Кнопка создается той же функцией CreateWindowEx, просто вместо "SimpleWinClass" указываешь "Button". Попробую щас со всеми остальными классами.
Не поверишь, но COMBOBOX, EDIT LISTBOX, SCROLLBAR, STATIC и вообще все контролы создаеются функцией CreateWindow. Ресурсы используются только для хранения параметров этой функции - размера, положения, цвета и т.д. В случае CreateDialogIndirect эти параметры описываются структурами в памяти.
Спасибо, driver. В свою очередь, отвечу благодарностью http://www.masm32.com/board/index.php Да, Partner. Hutch мне сказал то же самое, а сам я просто нашел пример. Чтобы не позориться перед остальными на форуме (буржуинами) я спросил у него в личке. Он ответил. Я даже не ожидал.
а в чём, собственно, проблема: желание обойтись без rc или проблемы с его использованием - тогда какие именно?
Спасибо, calidus. Поставил. Вроде все номана. Раньше я пользовался WinAsm Studio, т.к. не знал как создавать всякие контролы на окне. Теперь, зная, я смело заброшу это все и достану из заначки ts.com, прикрученный к масм32, ибо никакие удобства не смогут заменить мне этого синего экранчика с мигающим курсором.
bint меню можно и через api, с иконками сложнее... А лучше переходи на fasm - там как раз всё в листинге кода
Тогда посмотри здесь от #121 и ниже -- можно обойтись не только без файлов ресурсов, но и без линкера, хотя написано для nasm, но не сложно переделать под masm или fasm
ну, если в этом есть смысл: криптование экзешника, сверхмалые (?) его размеры, динамические диалоги - тогда конечно да, хотя WinAsm Studio не обязывает использовать скрипт ресурсов, а её редактор ресурсов можно быстро переключать из графического режима в текстовый клавишей F12 (например, чтобы посмотреть координаты размещенных контролов). можно, конечно, и бумагой в клеточку пользоваться - я иногда так делаю (мне на бумаге проще рисовать
На самом деле это - самый эффективный способ. Сначала нужно понять чего я хочу от программы. А уж потом реализация и все остальное. Хотя, бывает и так, что в процессе кодинга находятся какие-то новые ходы и программа меняется до неузнаваемости и, в конце концов, реализует задачи, совершенно противоположные основной цели. За то интересно!
bint masm32 + ДОС-оболочка )) (хотя конечно дело вкуса и привычки) Я собственно тоже пишу без всяких графических мастеров в редакторе UltraEdit, но никаких неудобств с написанием ресурсов в отдельном файле не наблюдаю, даже наоборот в с ростом программы разбиваю её на отдельные файлы с перемеными, макросами, подпрограммами, чтобы не было всё в одной куче. Или ts.com даже два файла одновременно открывать не умеет? Если проблема в том чтобы одной командой из оболочки сразу откомпилировать и ресурсы и прогу и всё слинковать, то она решается через bat файл. У меня он даже сам определяет есть у проги файл ресурсов или нужно компилировать без него add а вон в чём дело: тогда: http://msdn.microsoft.com/en-us/library/aa381043(VS.85).aspx