|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум 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 | |
|