Oxygen1a1 / InfinityHook_latest

etw hook (syscall/infinity hook) compatible with the latest Windows version of PG
191 stars 63 forks source link

小白求助,将大佬的InfinityHook_lastest加入我自己的驱动项目后有一些奇怪的报错 #1

Closed BaiFeng666 closed 4 months ago

BaiFeng666 commented 4 months ago

image

小白求助,将大佬的InfinityHook_lastest加入我自己的驱动项目后有一些奇怪的报错

我单独打开这个项目是可以正常编译的

但是当我把项目源码CV到我的驱动后,就出现了一堆莫名其妙的报错 这个报错是牛头不对马嘴的那种 代码里也没有任何红色波浪线 就是编译的时候下面会显示错误

我也根据错误仔细检查的代码附近,明明没有任何问题啊...(因为是CV的怎么会有问题)

我的项目也支持C++书写,也简单测试了支持cpp类的使用,折腾了两个小时也不知道是怎么回事

做过的检查:对比两个项目的VS的配置情况(设置几乎一样,还是报错)

1>(编译源文件“ETW_Hook/etwhook_init.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(54,109): error C2059: 语法错误:“)” 1>(编译源文件“ETW_Hook/etwhook_init.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(55,2): error C2143: 语法错误: 缺少“}”(在“{”的前面) 1>(编译源文件“ETW_Hook/etwhook_init.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(56,3): error C2628: “kstd::Logger::LogLevel”后面接“auto”是非法的(是否忘记了“;”?) 1>(编译源文件“ETW_Hook/etwhook_init.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(55,2): error C2059: 语法错误:“{” 1>(编译源文件“ETW_Hook/etwhook_init.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(55,2): error C2334: “{”的前面有意外标记;跳过明显的函数体 1>(编译源文件“ETW_Hook/etwhook_init.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\kstring.hpp(11,1): error C2059: 语法错误:“namespace” 1>(编译源文件“ETW_Hook/etwhook_init.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\kstring.hpp(11,16): error C2143: 语法错误: 缺少“;”(在“{”的前面) 1>(编译源文件“ETW_Hook/etwhook_init.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(72,7): error C2065: “__hfile”: 未声明的标识符 1>(编译源文件“ETW_Hook/etwhook_init.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(73,12): error C2065: “__hfile”: 未声明的标识符 1>(编译源文件“ETW_Hook/etwhook_init.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(74,4): error C2065: “__hfile”: 未声明的标识符 1>(编译源文件“ETW_Hook/etwhook_init.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(93,120): error C2065: “__info”: 未声明的标识符 1>(编译源文件“ETW_Hook/etwhook_init.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(113,23): error C2065: “__offset”: 未声明的标识符 1>(编译源文件“ETW_Hook/etwhook_init.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(121,26): error C2065: “__hfile”: 未声明的标识符 1>(编译源文件“ETW_Hook/etwhook_init.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(123,6): error C2065: “__offset”: 未声明的标识符 1>(编译源文件“ETW_Hook/etwhook_init.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\kstring.hpp(11,16): error C2447: “{”: 缺少函数标题(是否是老式的形式表?) 1>(编译源文件“ETW_Hook/etwhook_init.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\etwhook_base.hpp(31,1): error C1071: 在注释中遇到意外的文件结束 1>(编译源文件“ETW_Hook/etwhook_init.cpp”) 1>etwhook_manager.cpp 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(54,109): error C2059: 语法错误:“)” 1>(编译源文件“ETW_Hook/etwhook_manager.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(55,2): error C2143: 语法错误: 缺少“}”(在“{”的前面) 1>(编译源文件“ETW_Hook/etwhook_manager.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(56,3): error C2628: “kstd::Logger::LogLevel”后面接“auto”是非法的(是否忘记了“;”?) 1>(编译源文件“ETW_Hook/etwhook_manager.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(55,2): error C2059: 语法错误:“{” 1>(编译源文件“ETW_Hook/etwhook_manager.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(55,2): error C2334: “{”的前面有意外标记;跳过明显的函数体 1>(编译源文件“ETW_Hook/etwhook_manager.cpp”) 1>(编译源文件“ETW_Hook/etwhook_manager.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\kstring.hpp(11,1): error C2059: 语法错误:“namespace” 1>(编译源文件“ETW_Hook/etwhook_manager.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\kstring.hpp(11,16): error C2143: 语法错误: 缺少“;”(在“{”的前面) 1>(编译源文件“ETW_Hook/etwhook_manager.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(72,7): error C2065: “__hfile”: 未声明的标识符 1>(编译源文件“ETW_Hook/etwhook_manager.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(73,12): error C2065: “__hfile”: 未声明的标识符 1>(编译源文件“ETW_Hook/etwhook_manager.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(74,4): error C2065: “__hfile”: 未声明的标识符 1>(编译源文件“ETW_Hook/etwhook_manager.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(93,120): error C2065: “__info”: 未声明的标识符 1>(编译源文件“ETW_Hook/etwhook_manager.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(113,23): error C2065: “__offset”: 未声明的标识符 1>(编译源文件“ETW_Hook/etwhook_manager.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(121,26): error C2065: “__hfile”: 未声明的标识符 1>(编译源文件“ETW_Hook/etwhook_manager.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(123,6): error C2065: “__offset”: 未声明的标识符 1>(编译源文件“ETW_Hook/etwhook_manager.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\kstring.hpp(11,16): error C2447: “{”: 缺少函数标题(是否是老式的形式表?) 1>(编译源文件“ETW_Hook/etwhook_manager.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\etwhook_base.hpp(31,1): error C1071: 在注释中遇到意外的文件结束 1>(编译源文件“ETW_Hook/etwhook_manager.cpp”) 1>etwhook_utils.cpp 1>(编译源文件“ETW_Hook/etwhook_utils.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(54,109): error C2059: 语法错误:“)” 1>(编译源文件“ETW_Hook/etwhook_utils.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(55,2): error C2143: 语法错误: 缺少“}”(在“{”的前面) 1>(编译源文件“ETW_Hook/etwhook_utils.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(56,3): error C2628: “kstd::Logger::LogLevel”后面接“auto”是非法的(是否忘记了“;”?) 1>(编译源文件“ETW_Hook/etwhook_utils.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(55,2): error C2059: 语法错误:“{” 1>(编译源文件“ETW_Hook/etwhook_utils.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(55,2): error C2334: “{”的前面有意外标记;跳过明显的函数体 1>(编译源文件“ETW_Hook/etwhook_utils.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\kstring.hpp(11,1): error C2059: 语法错误:“namespace” 1>(编译源文件“ETW_Hook/etwhook_utils.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\kstring.hpp(11,16): error C2143: 语法错误: 缺少“;”(在“{”的前面) 1>(编译源文件“ETW_Hook/etwhook_utils.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(72,7): error C2065: “__hfile”: 未声明的标识符 1>(编译源文件“ETW_Hook/etwhook_utils.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(73,12): error C2065: “__hfile”: 未声明的标识符 1>(编译源文件“ETW_Hook/etwhook_utils.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(74,4): error C2065: “__hfile”: 未声明的标识符 1>(编译源文件“ETW_Hook/etwhook_utils.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(93,120): error C2065: “__info”: 未声明的标识符 1>(编译源文件“ETW_Hook/etwhook_utils.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(113,23): error C2065: “__offset”: 未声明的标识符 1>(编译源文件“ETW_Hook/etwhook_utils.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(121,26): error C2065: “__hfile”: 未声明的标识符 1>(编译源文件“ETW_Hook/etwhook_utils.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(123,6): error C2065: “__offset”: 未声明的标识符 1>(编译源文件“ETW_Hook/etwhook_utils.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\kstring.hpp(11,16): error C2447: “{”: 缺少函数标题(是否是老式的形式表?) 1>(编译源文件“ETW_Hook/etwhook_utils.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\etwhook_utils.hpp(11,7): error C2039: "kwstring": 不是 "kstd" 的成员 1>(编译源文件“ETW_Hook/etwhook_utils.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(13,11): 1>参见“kstd”的声明 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\etwhook_utils.hpp(11,16): error C2146: 语法错误: 缺少“;”(在标识符“getModuleNameByPtr”的前面) 1>(编译源文件“ETW_Hook/etwhook_utils.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\etwhook_utils.cpp(11,7): error C2086: “int kstd::kwstring”: 重定义 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\etwhook_utils.hpp(11,7): 1>参见“kstd::kwstring”的声明 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\etwhook_utils.cpp(11,16): error C2146: 语法错误: 缺少“;”(在标识符“getModuleNameByPtr”的前面) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\etwhook_utils.cpp(11,71): error C2143: 语法错误: 缺少“;”(在“{”的前面) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\etwhook_utils.cpp(11,71): error C2447: “{”: 缺少函数标题(是否是老式的形式表?) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(35,15): error C1075: “{”: 未找到匹配令牌 1>(编译源文件“ETW_Hook/etwhook_utils.cpp”) 1>etw_hook.cpp 1>(编译源文件“ETW_Hook/etw_hook.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(54,109): error C2059: 语法错误:“)” 1>(编译源文件“ETW_Hook/etw_hook.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(55,2): error C2143: 语法错误: 缺少“}”(在“{”的前面) 1>(编译源文件“ETW_Hook/etw_hook.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(56,3): error C2628: “kstd::Logger::LogLevel”后面接“auto”是非法的(是否忘记了“;”?) 1>(编译源文件“ETW_Hook/etw_hook.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(55,2): error C2059: 语法错误:“{” 1>(编译源文件“ETW_Hook/etw_hook.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(55,2): error C2334: “{”的前面有意外标记;跳过明显的函数体 1>(编译源文件“ETW_Hook/etw_hook.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\kstring.hpp(11,1): error C2059: 语法错误:“namespace” 1>(编译源文件“ETW_Hook/etw_hook.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\kstring.hpp(11,16): error C2143: 语法错误: 缺少“;”(在“{”的前面) 1>(编译源文件“ETW_Hook/etw_hook.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(72,7): error C2065: “__hfile”: 未声明的标识符 1>(编译源文件“ETW_Hook/etw_hook.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(73,12): error C2065: “__hfile”: 未声明的标识符 1>(编译源文件“ETW_Hook/etw_hook.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(74,4): error C2065: “__hfile”: 未声明的标识符 1>(编译源文件“ETW_Hook/etw_hook.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(93,120): error C2065: “__info”: 未声明的标识符 1>(编译源文件“ETW_Hook/etw_hook.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(113,23): error C2065: “__offset”: 未声明的标识符 1>(编译源文件“ETW_Hook/etw_hook.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(121,26): error C2065: “__hfile”: 未声明的标识符 1>(编译源文件“ETW_Hook/etw_hook.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\klog.hpp(123,6): error C2065: “__offset”: 未声明的标识符 1>(编译源文件“ETW_Hook/etw_hook.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\kstl\kstring.hpp(11,16): error C2447: “{”: 缺少函数标题(是否是老式的形式表?) 1>(编译源文件“ETW_Hook/etw_hook.cpp”) 1>D:\Github\Kernel\BFDriverV2\ETW_Hook\include\etwhook_base.hpp(31,1): error C1071: 在注释中遇到意外的文件结束 1>(编译源文件“ETW_Hook/etw_hook.cpp”)

Oxygen1a1 commented 4 months ago

看起来是没有把编码格式转成utf-8,你把相关hpp转换成utf-8编码,然后再在编译属性(要么就是连接属性)添加上/utf-8 试试

BaiFeng666 commented 4 months ago

看起来是没有把编码格式转成utf-8,你把相关hpp转换成utf-8编码,然后再在编译属性(要么就是连接属性)添加上/utf-8 试试

感谢,应该是这样,又学到了新技巧