"error LNK2019: unresolved external symbol _HookZwCreateProcess@0 "如何解决?谢谢!

taianmonkey 2009-07-04 05:12:29
HookZwCreateProcess例程的实现放在了Process.c中,
形式如下:
VOID NTAPI HookZwCreateProcess()
{
。。。。
}
HookZwCreateProcess例程的声明放在了Process.h中,
形式如下:
VOID NTAPI HookZwCreateProcess();

而真正的调用,放在了Main.c中,
形式如下:
NTSTATUS
DeviceControl(
IN PFILE_OBJECT FileObject,
IN BOOLEAN Wait,
IN PVOID InputBuffer,
IN ULONG InputBufferLength,
OUT PVOID OutputBuffer,
IN ULONG OutputBufferLength,
IN ULONG IoControlCode,
OUT PIO_STATUS_BLOCK IoStatus,
IN PDEVICE_OBJECT DeviceObject
)
{
IoStatus->Status = STATUS_SUCCESS;
IoStatus->Information = 0;

switch( IoControlCode )
{
case CTL_CODE_LSR_HOOK_ZWCREATEPROCESS:
{
HookZwCreateProcess();
}
break;
default:break;
}

return IoStatus->Status;
}

编译时,出现了:
error LNK2019: unresolved external symbol _HookZwCreateProcess@0 referenced in function _DeviceControl@36
错误提示,如何解决?
谢谢大侠
...全文
53 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
cnzdgs 2009-07-04
Sources文件中没有写Process.c。
回复
Pinel_yqs 2009-07-04
在Process.h中声明“VOID NTAPI HookZwCreateProcess();”时要明确给定函数参数,函数无参数也要加个Void。像下面这样声明应该没有问题了:“VOID NTAPI HookZwCreateProcess(void);”
回复
taianmonkey 2009-07-04
我已经这样做了,可还是出现那个错误提示
回复
Pinel_yqs 2009-07-04
在Main.c中包含Process.h,并确定编译路径包含了Process.h所在的文件夹(如果Process.h不在Main.c同一个文件夹下的话)。
回复
发帖
驱动开发/核心开发
创建于2007-09-28

2.1w+

社区成员

硬件/嵌入开发 驱动开发/核心开发
申请成为版主
帖子事件
创建了帖子
2009-07-04 05:12
社区公告
暂无公告