API HOOK问题,高分求教。

vage 2004-12-25 10:00:08
BOOL _SetApiHookUp(PAPIHOOK32_ENTRY phk)
{
ULONG size;
PCSTR pszHookModName = "kernel32.dll",pszSleepName = "Sleep";
HMODULE hKernel = GetModuleHandle(pszHookModName);
PIMAGE_IMPORT_DESCRIPTOR pImportDesc ;
PROC pfnNew = (PROC)0x12345678;
PROC pfnHookAPIAddr = GetProcAddress(hKernel,pszSleepName);
//获取指向PE文件中的Import中IMAGE_DIRECTORY_DESCRIPTOR数组的指针
pImportDesc= (PIMAGE_IMPORT_DESCRIPTOR)ImageDirectoryEntryToData( hKernel, TRUE,
IMAGE_DIRECTORY_ENTRY_IMPORT, &size );
//下面的还没编
}

我只编了这一小段,编译时报下面这个错误
--------------------Configuration: test4 - Win32 Debug--------------------
Linking...
t1.obj : error LNK2001: unresolved external symbol __imp__ImageDirectoryEntryToData@16
Debug/test4.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

test4.exe - 2 error(s), 0 warning(s)

我用的是VC6.0,在Win98和Win2000服务器版上都试过了,结果一样。谁能告诉我是怎么回事,如何解决.
...全文
180 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
vage 2005-01-13
  • 打赏
  • 举报
回复
谢谢大家。按照大家的指点,我已经知道了。
leon7909 2004-12-27
  • 打赏
  • 举报
回复
没有DbgHelp可以试试找ImageHlp ,这里面也有这个东西
蒋晟 2004-12-27
  • 打赏
  • 举报
回复
你的VC不会是98年的吧
要么升级VC,要么升级SDK
zhangqu_980371 2004-12-27
  • 打赏
  • 举报
回复
project\setting:
link\object/library module:Dbghelp.lib。

头文件
#include " Dbghelp.h""
很多人安装后都没有这个文件的。
你需要去下载。
在google上搜就可以。
gooyan 2004-12-27
  • 打赏
  • 举报
回复
project\setting\link\module:输入Dbghelp.lib。然后#include " Dbghelp.h"
xhltoo 2004-12-27
  • 打赏
  • 举报
回复
uP!
DentistryDoctor 2004-12-26
  • 打赏
  • 举报
回复
Requirements
Client: Requires Windows XP or Windows 2000 Professional.
Server: Requires Windows Server 2003 or Windows 2000 Server.
Redistributable: Requires DbgHelp.dll on Windows NT 4.0 and Windows Me/98/95.
Header: Declared in Dbghelp.h.
Library: Use Dbghelp.lib.

oyljerry 2004-12-26
  • 打赏
  • 举报
回复
缺少函数相应的lib文件,包含到project中就好了
vage 2004-12-26
  • 打赏
  • 举报
回复
我机器里没有Dbghelp.lib啊,是不是我的VC没装全啊。
kugou123 2004-12-25
  • 打赏
  • 举报
回复
缺少相应的库文件。在工程中加入Dbghelp.lib才能使用。
SatanLi1982 2004-12-25
  • 打赏
  • 举报
回复
首先ImageDirectoryEntryToData是一个函数
其次:
Header: Declared in Dbghelp.h.
Library: Use Dbghelp.lib.
所以问题是你没有包含Dbghelp.lib,所以链接器找不到这个函数的实现
needways 2004-12-25
  • 打赏
  • 举报
回复
#pragma comment(lib, "imagehlp.lib")

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧