怎么在C中使用DLL
#include "dll.h"
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include<time.h>
#pragma data_seg("sharehook")
HHOOK sharedata;
#pragma data_seg()
#pragma comment (linker,"/SECTION:sharehook,RWS")
LRESULT CALLBACK ShellHookProc(int nCode,WPARAM wParam,LPARAM lParam);
void SaveLog(char *n);
HINSTANCE hInce;
HHOOK myhook;
/*DLLIMPORT void ShellHook ()
{
MessageBox (0, "Hello World from DLL!\n", "Hi", MB_ICONINFORMATION);
}*/
BOOL APIENTRY DllMain (HINSTANCE hInst /* Library instance handle. */ ,
DWORD reason /* Reason this function is being called. */ ,
LPVOID reserved /* Not used. */ )
{
switch (reason)
{
case DLL_PROCESS_ATTACH:
// sethook();
//sharedata=(HHOOK)SetWindowsHookEx(WH_SHELL,ShellHookProc,hInce,0);
break;
case DLL_PROCESS_DETACH:
//unsethook();
//if( UnhookWindowsHookEx(sharedata))
//sharedata=NULL;
break;
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
break;
}
/* Returns TRUE on success, FALSE on failure */
return TRUE;
}
DLLIMPORT int sethook()
{
if(myhook=(HHOOK)SetWindowsHookEx(WH_SHELL,ShellHookProc,hInce,0))
{
sharedata=myhook;
return 1;
}
return 0;
}
DLLIMPORT int unsethook()
{
if( UnhookWindowsHookEx(sharedata))
{
myhook=NULL;
return 1;
}
else
return 0;
}
LRESULT CALLBACK ShellHookProc(int nCode,WPARAM wParam,LPARAM lParam)
{
if(sharedata)
{
if (nCode==HSHELL_WINDOWCREATED)
{
HWND hwm=(HWND)wParam;
char *strName;
strName=(char*)malloc(256);
GetWindowText(hwm,strName,256);
SaveLog(strName);
/*if (strName=="扫雷")
{
GetSafeHwnd(WM_CLOSE,0,0);
}*/
}
}
return CallNextHookEx(myhook,nCode,wParam,lParam ) ;
}
void SaveLog(char *n)
{
//char *name=n;
FILE *log;
struct tm *systime;
time_t t;
t=time(NULL);
systime=localtime(&t);
if((log=fopen("syslog.log","a+"))==NULL)
exit(1);
else
fprintf(log,"open %s at %5d%5d%5d%5d%5d%5d",n,systime->tm_year,systime->tm_mon,systime->tm_mday,systime->tm_hour,systime->tm_min,systime->tm_sec);
fclose(log);
}
这是编译生成DLL的源程序,目的是设置全局的shell钩子
但不知道在其它的程序中怎么用编译连接好的DLL
有哪位可以帮帮我啊!!!!!!!!