Вот хочу сделать простенькую программу, используя ресурсы типа два поля Edit и одна кнопка Button, только как создать такую программу на масме? ресурсы сделал в WinAsm, а потом что делать? Смысл проги: Прога должна прочесть строку из первого Edit и вывести во второй Edit2 при нажатии на кнопку. Вот что получилось, только не работает: .486 .model flat, stdcall include C:\masm32\bin\base.rc include C:\masm32\bin\include\windows.inc includelib C:\masm32\bin\lib\user32.lib includelib C:\masm32\bin\lib\kernel32.lib .data hInstance dw 0 buf1 dw 30 dup (0) .code start: invoke GetModuleHandle, NULL mov hInstance, eax invoke DialogBoxParam, hInstance, 101, 0, ADDR DlgProc, 0 invoke GetWindowTextA, 1001, addr buf1, 10 invoke WriteComm, 1002, addr buf1, 10 invoke ExitProcess, eax ; ----------------------------------------------------------------------- DlgProc proc hWin WORD, uMsg WORD, wParam WORD, lParam WORD .if uMsg == WM_COMMAND .if wParam == IDC_OK ; ----------------------------------------------------------------------- ; TODO ; ----------------------------------------------------------------------- .elseif wParam == IDC_IDCANCEL invoke EndDialog,hWin,0 .endif .elseif uMsg == WM_CLOSE invoke EndDialog,hWin,0 .endif xor eax,eax ret DlgProc endp end start
Это должно быть внутри DlgProc, в том месте, где написано TODO . Надеюсь также, что WriteComm - это какая-то процедура, нормально отлаженная и где-то присутствующая? (не припомню такой АПИ). Я бы написал даже так: invoke GetDlgItemTextA, hWin, 1001, addr buf1, 30 invoke SetDlgItemTextA, hWin, 1002, addr buf1
Ulv Потом надо убрать вот эту странную строку вместо нее взять компилер ресурсов, который находится у тебя в папке Bin MASM'а и называется - RC.EXE - Microsoft Windows Resource Compiler, там для него и справка есть, но почему то написано, что он для Windows NT и написать в коммандной строке так - rc.exe /v base.rc, в текущей папке появится файл base.res, иначе появится кучу ошибок. Его надо передать в командной строке линкеру вместе с объектный файлом и другими параметрами линковки. Еще можно заюзать тулзу cvtres оттуда же и превратить этот файл ресурсов в объектный файл, хотя не знаю зачем она нужна может в целях какой-то хитрой совместимости. Ну мне линкера хватает, чтобы передать res файл. А потом написать код, который сказал FatMoon.
нееее Есть прога класная ))) как раз из пакета ассемблерного не помню название ..эмммм короче ищи в инструментах билдеры ресурсов ...там вроде была она ты ее сразу узнаешь так как в ней оч много компорнентов
Для начала может и MasmBuilder подойти По нему я и узнал основы ассемблера, хоть он немного и недоработанный зайди на http://mbuilder.jino-net.ru/ не пожалеешь
1.52 ловчее, мне кажется. 1.62 задумчивый какой-то , хотел немного его улучшить - слетели иконки асм-файлов и никак их не вернуть, переустановка не помогла Для мазохистов можно порекомендовать Radasm ...