|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - ошибка при создание класса |
|
C/C++ - ошибка при создание класса
|
Новый участник Сообщения: 21 |
написал класс:
Скрытый текст
#include<windows.h> class Hook{ public: void SetHook(){ HINSTANCE hinstDLL = GetModuleHandle(NULL); if (!(_hook = SetWindowsHookEx(WH_KEYBOARD_LL,(HOOKPROC)KeyProc, hinstDLL,0))){ MessageBox(NULL, "Failed to install hook!", "Error", MB_ICONERROR); } } void UnSetHook(){ UnhookWindowsHookEx(_hook); } int GetVKCode(){ return code; } bool GetKey(){ return key; } void SetKey(bool keym){ key=keym; } void Update(){ PeekMessage(&msg,NULL,0,0,0); } void uncode(){ code=0; } private: HHOOK _hook; HINSTANCE hinstDLL; static int code; static bool key; MSG msg; static LRESULT CALLBACK KeyProc(int ncode,WPARAM wParam,LPARAM lParam){ KBDLLHOOKSTRUCT * pStruct = (KBDLLHOOKSTRUCT *)lParam; code=pStruct->vkCode; if(wParam==WM_KEYUP){key=false;code=0;}else{key=true;} return CallNextHookEx(_hook,ncode,wParam,lParam); } }; компилятор выдает ошибку: Скрытый текст
Помогите пожалуйста! |
|
Отправлено: 07:41, 25-01-2016 |
Ветеран Сообщения: 740
|
Профиль | Отправить PM | Цитировать Вы в статическом методе
Цитата амир-05:
Если у вашего класса вызвать Hook::KeyProc(...), то отуда компилятор должен взять _hook? |
|
Отправлено: 11:34, 27-01-2016 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 21
|
Профиль | Отправить PM | Цитировать спс
но я уже перешёл на глобальные хуки и написал следующий код: main.cpp: #include<windows.h> #include<iostream> using namespace std; int main(){ HOOKPROC func; HHOOK _hook; int ncode=15; WPARAM wParam; LPARAM lParam; MSG msg; HINSTANCE hinstDLL; hinstDLL=LoadLibrary("dll.dll"); (FARPROC &)func = GetProcAddress(hinstDLL,"KeyProc@12"); _hook=SetWindowsHookEx(WH_KEYBOARD,func,hinstDLL,0); while(1){ PeekMessage(&msg,NULL,0,0,0); } } но не работает:может я что то не дописал или упустил,не пойму.Помогите пожалуйста)) |
Отправлено: 18:02, 10-02-2016 | #3 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
V. 2010 - Ошибка при обновлении Exchange 2010 "Произошла ошибка при выполнении 'ldifde.exe' | kudrik_tt | Microsoft Exchange Server | 0 | 01-07-2014 08:07 | |
PowerShell - [решено] Ошибка при вызове DownloadFile класса System.Net.WebClient | ThFox | Скриптовые языки администрирования Windows | 8 | 21-02-2014 14:57 | |
Службы - ошибка при создание тома в w8ent | r-studio | Microsoft Windows 8 и 8.1 | 12 | 30-11-2012 06:40 | |
C/C++ - Лучшая реализация класса, при котором создаёться обьект с картинкой. | FunTime | Программирование и базы данных | 0 | 23-06-2010 00:59 | |
создание потоков без класса TThread | JCooper | Программирование и базы данных | 2 | 18-11-2004 13:01 |
|