Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > ошибка присваивания указателя к функциям из dll


Автор: shuttle 13.11.2008, 07:40
в dll определены функции:

LRESULT CALLBACK KeyboardHook(int Code, WPARAM wParam, LPARAM lParam)
{...}

LRESULT CALLBACK MouseHook (int nCode, WPARAM wParam, LPARAM lParam)
{...}


в основной программе описал указатели на эти функции.

LRESULT CALLBACK (__stdcall *pKeybHook)(int,WPARAM,LPARAM);
LRESULT CALLBACK (__stdcall *pMouseHook)(int,WPARAM,LPARAM);

затем присваиваю указателю значение
(void*)pKeybHook=GetProcAddress(hLib,"KeyboardHook");
и здесь идет ошибка - ругается на аргумент слева от присваивания - Lvalue required.

Автор: xvr 13.11.2008, 12:27
Цитата(shuttle @ 13.11.2008,  07:40)
в dll определены функции:

LRESULT CALLBACK KeyboardHook(int Code, WPARAM wParam, LPARAM lParam)
{...}

LRESULT CALLBACK MouseHook (int nCode, WPARAM wParam, LPARAM lParam)
{...}


в основной программе описал указатели на эти функции.

LRESULT CALLBACK (__stdcall *pKeybHook)(int,WPARAM,LPARAM);
LRESULT CALLBACK (__stdcall *pMouseHook)(int,WPARAM,LPARAM);

затем присваиваю указателю значение
(void*)pKeybHook=GetProcAddress(hLib,"KeyboardHook");
и здесь идет ошибка - ругается на аргумент слева от присваивания - Lvalue required.

Попробуй так
Код

(void*&)pKeybHook=GetProcAddress(hLib,"KeyboardHook");

Автор: Rififi 13.11.2008, 13:46
GetProcAddress возвращает тип FARPROC, что не равно void*
если уж собираешься вытаскивать адрес функции таким извращенным способом, то:

*(FARPROC*) &pKeybHook = GetProcAddress(hLib, "KeyboardHook");

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)