Вот не понимаю в чём дело. Код (Text): ... include 'win32ax.inc' ... IDM_10 = 10 IDM_11 = 11 IDM_12 = 12 IDM_13 = 13 IDM_21 = 21 IDM_30 = 30 section '.rsrc' resource data readable directory RT_MENU, menus resource menus,\ 37, LANG_ENGLISH + SUBLANG_DEFAULT, main_menu menu main_menu menuitem 'A',IDM_10,MFR_POPUP menuitem 'A : A',IDM_11 menuitem 'A : B',IDM_12 menuseparator menuitem 'A : C',IDM_13,MFR_END menuitem 'B',IDM_20,MFR_POPUP menuitem 'B : A',IDM_21,MFR_END menuitem 'C',IDM_30,MFR_POPUP+MFR_END На этот код FASM отвечает ошибкой: . Подскажите, пожалуйста, почему так? Спасибо.
А на это ли он ругается? где тот самый undefined symbol 'size?Pl' ? ИМХО, не там проблему ищете. ЗЫ: может, надо так - size?, Pl ъ?
А, тады простите... В фасме, увы, ни бельмеса Но тогда почему сам фасм лично ругается на свои макросы?
А вообще все эти туторы давно переведены. Код (Text): format PE GUI 4.0 entry start include '%fasminc%\win32wx.inc' IDR_MENU = 100 IDM_FILE = 101 IDM_NEW = 102 IDM_EXIT = 103 IDM_WINDOW = 104 IDM_TILEHOR = 105 IDM_TILEVER = 106 IDM_CASCADE = 107 ;================================================================================[DATA]==== section '.data' data readable writeable wTitle TCHAR 'Iczelion Tutorial No.8',0 wClsName TCHAR 'TUT08',0 wMsg MSG wCls WNDCLASS wHMain dd ? wHInstance dd ? ;================================================================================[CODE]==== section '.code' code readable executable start: ; registering the window class invoke GetModuleHandle, 0 mov [wHInstance], eax mov [wCls.hInstance], eax mov [wCls.style], CS_HREDRAW or CS_VREDRAW mov [wCls.lpfnWndProc], window_procedure mov [wCls.lpszClassName], wClsName mov [wCls.hbrBackground], COLOR_BTNFACE+1 invoke LoadIcon, NULL, IDI_APPLICATION mov [wCls.hIcon], eax invoke LoadCursor, NULL, IDC_ARROW mov [wCls.hCursor], eax invoke RegisterClass, wCls invoke LoadMenu, [wHInstance], IDR_MENU ; creating the main window invoke CreateWindowEx, 0, wClsName, wTitle,\ WS_OVERLAPPEDWINDOW + WS_VISIBLE, CW_USEDEFAULT, CW_USEDEFAULT,\ CW_USEDEFAULT, CW_USEDEFAULT, NULL, eax, [wHInstance], NULL mov [wHMain], eax ; entering the message loop window_message_loop_start: invoke GetMessage, wMsg, NULL, 0, 0 or eax, eax je window_message_loop_end invoke TranslateMessage, wMsg invoke DispatchMessage, wMsg jmp window_message_loop_start window_message_loop_end: invoke ExitProcess, 0 ;----------------------------------------------------------------<the window procedure>---- proc window_procedure uses ebx esi edi, hWnd, uMsg, wParam, lParam mov eax, [uMsg] cmp eax, WM_COMMAND je .wmCOMMAND cmp eax, WM_DESTROY je .wmDESTROY .wmDEFAULT: invoke DefWindowProc, [hWnd], [uMsg], [wParam], [lParam] jmp .exit .wmCOMMAND: jmp .exit .wmDESTROY: invoke PostQuitMessage, 0 .exit: ret endp ;----------------------------------------------------------------<the window procedure>---- ;===============================================================================[IDATA]==== section '.idata' import data readable library kernel32, 'KERNEL32.DLL',\ user32, 'USER32.DLL' include '%fasminc%\api\kernel32.inc' include '%fasminc%\api\user32.inc' ;================================================================================[RSRC]==== section '.rsrc' resource data readable directory RT_MENU,appMenu resource appMenu,\ IDR_MENU,LANG_ENGLISH,MainMenu menu MainMenu menuitem '&File' ,IDM_FILE ,MFR_POPUP menuitem '&New' ,IDM_NEW ,MFT_STRING menuseparator menuitem '&Exit' ,IDM_EXIT ,MFR_END menuitem '&Window' ,IDM_WINDOW ,MFR_POPUP menuitem 'Tile Horizontal' ,IDM_TILEHOR ,MFT_STRING menuitem 'Tile Vertical' ,IDM_TILEVER ,MFT_STRING menuitem 'Cascade' ,IDM_CASCADE ,MFR_END menuitem '&Exit' ,IDM_EXIT ,MFR_END ;==========================================================================================
Переведённые на FASM? Действительно, не поделишься ли ссылкой на эти туторы, а то у меня в СПРС стоит ремастеринг туториалов Iczelion'а и есть идея показывать там код для нескольких компиляторов.