Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - ошибка при создание класса

Ответить
Настройки темы
C/C++ - ошибка при создание класса

Новый участник


Сообщения: 21
Благодарности: 0

Профиль | Отправить PM | Цитировать


написал класс:
Скрытый текст
Код: Выделить весь код
#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

 

Аватара для User001

Ветеран


Сообщения: 740
Благодарности: 116

Профиль | Отправить PM | Цитировать


Вы в статическом методе
Цитата амир-05:
static LRESULT CALLBACK KeyProc(int ncode,WPARAM wParam,LPARAM lParam) »
используете поле _hook, которое нестатическое.

Если у вашего класса вызвать Hook::KeyProc(...), то отуда компилятор должен взять _hook?

Отправлено: 11:34, 27-01-2016 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 21
Благодарности: 0

Профиль | Отправить 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);
	}
}
dll.cpp:
Код: Выделить весь код
#include<windows.h>
#include<iostream>
#define DllExport extern"C" __declspec(dllexport)
HHOOK _hook;
DllExport LRESULT CALLBACK KeyProc(int ncode,WPARAM wParam,LPARAM lParam){
	std::cout<<wParam;
	std::cout<<123;
	}
но не работает:может я что то не дописал или упустил,не пойму.Помогите пожалуйста))

Отправлено: 18:02, 10-02-2016 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - ошибка при создание класса

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход