Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.07.2011, 10:54   #1
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию error A2111 в примере 24-го урока Iczeliona

Здравствуйте!

По этой ссылке был подобный вопрос, но ответ не подходит к моему случаю.

24-й урок Iczeliona

Ошибка: mousehook(12) : error A2111: conflicting parameter definition

В следующем коде:

Код:
.386
.model flat,stdcall
option casemap:none
include e:\ProgramFiles\masm32\include\windows.inc
include e:\ProgramFiles\masm32\include\user32.inc
include e:\ProgramFiles\masm32\include\kernel32.inc
include mousehook.inc
includelib mousehook.lib
includelib e:\ProgramFiles\masm32\lib\user32.lib
includelib e:\ProgramFiles\masm32\lib\kernel32.lib

wsprintfA proto C :DWORD,:DWORD,:VARARG
wsprintf TEXTEQU <wsprintfA>
.const
IDD_MAINDLG                     equ 101
IDC_CLASSNAME                   equ 1000
IDC_HANDLE                      equ 1001
IDC_WNDPROC                     equ 1002
IDC_HOOK                        equ 1004
IDC_EXIT                        equ 1005
WM_MOUSEHOOK equ WM_USER+6

DlgFunc PROTO :DWORD,:DWORD,:DWORD,:DWORD
.data
HookFlag dd FALSE
HookText db "&Hook",0
UnhookText db "&Unhook",0
template db "%lx",0
.data?
hInstance dd ?
hHook dd ?
.code
start:
	invoke GetModuleHandle,NULL
	mov hInstance,eax
	invoke DialogBoxParam,hInstance,IDD_MAINDLG,NULL,addr DlgFunc,NULL
	invoke ExitProcess,NULL

DlgFunc proc hDlg:DWORD,uMsg:DWORD,wParam:DWORD,lParam:DWORD
	LOCAL hLib:DWORD
	LOCAL buffer[128]:byte
	LOCAL buffer1[128]:byte
	LOCAL rect:RECT
	.if uMsg==WM_CLOSE
		.if HookFlag==TRUE
			invoke UninstallHook
		.endif
		invoke EndDialog,hDlg,NULL
	.elseif uMsg==WM_INITDIALOG
		invoke GetWindowRect,hDlg,addr rect
		invoke SetWindowPos,hDlg,HWND_TOPMOST,rect.left,rect.top,rect.right,rect.bottom,SWP_SHOWWINDOW
	.elseif uMsg==WM_MOUSEHOOK
		invoke GetDlgItemText,hDlg,IDC_HANDLE,addr buffer1,128
		invoke wsprintf,addr buffer,addr template,wParam
		invoke lstrcmpi,addr buffer,addr buffer1
		.if eax!=0
			invoke SetDlgItemText,hDlg,IDC_HANDLE,addr buffer
		.endif
		invoke GetDlgItemText,hDlg,IDC_CLASSNAME,addr buffer1,128
		invoke GetClassName,wParam,addr buffer,128
		invoke lstrcmpi,addr buffer,addr buffer1
		.if eax!=0
			invoke SetDlgItemText,hDlg,IDC_CLASSNAME,addr buffer
		.endif
		invoke GetDlgItemText,hDlg,IDC_WNDPROC,addr buffer1,128
		invoke GetClassLong,wParam,GCL_WNDPROC
		invoke wsprintf,addr buffer,addr template,eax
		invoke lstrcmpi,addr buffer,addr buffer1
		.if eax!=0
			invoke SetDlgItemText,hDlg,IDC_WNDPROC,addr buffer
		.endif
	.elseif uMsg==WM_COMMAND
		.if lParam!=0
			mov eax,wParam
			mov edx,eax
			shr edx,16
			.if dx==BN_CLICKED
				.if ax==IDC_EXIT
					invoke SendMessage,hDlg,WM_CLOSE,0,0
				.else
					.if HookFlag==FALSE
						invoke InstallHook,hDlg
						.if eax!=NULL
							mov HookFlag,TRUE
							invoke SetDlgItemText,hDlg,IDC_HOOK,addr UnhookText
						.endif
					.else
						invoke UninstallHook
						invoke SetDlgItemText,hDlg,IDC_HOOK,addr HookText
						mov HookFlag,FALSE
						invoke SetDlgItemText,hDlg,IDC_CLASSNAME,NULL
						invoke SetDlgItemText,hDlg,IDC_HANDLE,NULL
						invoke SetDlgItemText,hDlg,IDC_WNDPROC,NULL
					.endif
				.endif
			.endif
		.endif
	.else
		mov eax,FALSE
		ret
	.endif
	mov eax,TRUE
	ret
DlgFunc endp

end start
8Observer8 вне форума Ответить с цитированием
Старый 27.07.2011, 11:24   #2
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Файл make.bat:
Код:
@echo off
e:\ProgramFiles\masm32\bin\ml /c /coff "%cd%\mousehook".asm
e:\ProgramFiles\masm32\bin\link /subsystem:windows "%cd%\mousehook".obj
pause>nul
8Observer8 вне форума Ответить с цитированием
Старый 27.07.2011, 13:19   #3
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

8Observer8
тебе на ВАСМе уже ответили -- зачем засирать все ассемблерные форумы?
Кроме того там есть еще RC-файл из него нужно создать RES-файл, а уже из RES- и OBJ-файла создать EXE
Код:
set masm_path=e:\masm32
%masm_path%\bin\rc /v mousehook.rc
%masm_path%\bin\cvtres /machine:ix86 mousehook.res
%masm_path%\bin\ml /c /Cp /Gz /I%masm_path%\include /coff /nologo mousehook.asm  || exit
%masm_path%\bin\Link /SUBSYSTEM:WINDOWS  ^
/LIBPATH:%masm_path%\lib /NOLOGO mousehook.obj mousehook.res || exit
del mousehook.res

Последний раз редактировалось Mikl___; 27.07.2011 в 13:23.
Mikl___ вне форума Ответить с цитированием
Старый 27.07.2011, 13:58   #4
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Цитата:
тебе на ВАСМе уже ответили -- зачем засирать все ассемблерные форумы?
Хотел проверить, где быстрее получиться. Ну не удержался... Извиняюсь)

Там я Вас уже поблагодарил! Ещё раз, спасибо!
8Observer8 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Периодическая ошибка Run-time error -2147417848 (80010108) Automation error в файле с макросом faraviper Microsoft Office Excel 0 24.02.2011 16:23
классы - Error 3 error C2228: left of '.BlockAll' must have class/struct/union c:\documents and settings\ Dimarik Visual C++ 1 08.02.2011 15:16
Ищу причину ошибки: Error in loading DLL, она же Error 48. hozpraktik Microsoft Office Excel 1 19.11.2009 12:39