Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Динамическая загрузка dll


Автор: NOCaut 19.5.2011, 12:34
Пишу фильтр от UAC-а при отправки WM_COPYDATA. Что непфравильно?
Код
void SetMessageFilter()
{
typedef BOOL (*CHANGEWINDOWMESSAGEFILTER)(UINT message, DWORD dwFlag);
HINSTANCE hMyDll;
        if ((hMyDll=LoadLibrary(L"user32.dll")) != NULL) 
        {
            CHANGEWINDOWMESSAGEFILTER pfnMyFunction; 
            pfnMyFunction=(CHANGEWINDOWMESSAGEFILTER)
            GetProcAddress(hMyDll,"ChangeWindowMessageFilter"); 
            (*pfnMyFunction)(WM_COPYDATA,1); <<<<<<< Ран тайм еррор 
            FreeLibrary(hMyDll);                
        }
}


Добавлено через 8 минут и 16 секунд
Разобрался. Забил про WINAPI.

typedef BOOL (WINAPI*CHANGEWINDOWMESSAGEFILTER)(UINT message, DWORD dwFlag);

void WINAPI SetMessageFilter()

Автор: Earnest 19.5.2011, 12:44
Может, истинное имя функции ChangeWindowMessageFilter? И вообще, проверил бы на 0 возвращаемый адрес. Может, у тебя не Vista?
Цитата

Minimum operating systems Windows Vista 

Автор: NOCaut 19.5.2011, 12:52
У меня Windows 7. На ней тоже есть UAC

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