hooks.hpphooks.cpp 他用的cpp和hpp我理解他是为了面向对象开发可能为了省去麻烦的配置,没有使用类而是使用了命名空间来做面向对象。不知道我这么理解有没有问题?
driver.cpp 在驱动入口处,他用的
NTSTATUS DriverEntry(xxx,xxxx)
而不是
extern "C" NTSTATUS DriverEntry(xxx,xxxx)
但是这是在.cpp文件中,不知道他是怎么编译过去的希望有大佬可以指点一下。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
驱动里本来就是可以用 C++ 语法。用命名空间可以更好的分类代码,比如 hooks::xxx 和 hooks_xxx,从本质和实际都只是命名区别。但是部分面向对象 class 操作在驱动中需要额外手动支持,比如 new free constructor destructor 等等。至于入口处为什么没有 extern "C",因为修改了项目配置,链接器->高级->入口点。
Sprite雪碧 驱动里本来就是可以用 C++ 语法。用命名空间可以更好的分类代码,比如 hooks::xxx 和 hooks_ ...
情话布墨 雪碧师傅,那个链接器->高级->入口点我只找到了 修改入口函数名的地方 但是没有找到这个相关的配置~这个是否可以在具体点呢?
Sprite雪碧 就是函数名啊,你自己对比他 Debug 和 Release 的那项区别,你再去试试 Debug 能不能编译过。 新建的项目这里默认是 GsDriverEntry