"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
错误提示,如何解决?
谢谢大侠
...全文
109 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
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同一个文件夹下的话)。

21,616

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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