我正在尝试编译一些最后使用Visual Studio 2015在VC ++ 6.0中编译的驱动程序代码。
链接器不断向我发出警告LNK4086声明:
入口点' _DriverEntry @ 8'不是__stdcall,有12个字节的参数;图片可能无法运行
该方法应使用 __ stdcall 约定,因为项目设置了 / Gz 选项。我甚至尝试手动添加选项以使其高兴,但链接器仍然抱怨:
_Use_decl_annotations_
NTSTATUS
__stdcall
DriverEntry(
PDRIVER_OBJECT DriverObject,
PUNICODE_STRING RegistryPath
)
这个警告阻止我完成编译,因为它告诉我:
警告视为错误;没有生成输出文件
以下是我的链接器选项(为了隐私目的,我删除了文件名):
/ OUT:" [FILENAME REMOVED] .sys" / MANIFEST:NO / PROFILE / NXCOMPAT / Driver / PDB:" [FILENAME REMOVED] .pdb" / DYNAMICBASE" wdm.lib" " usbd.lib" / RELEASE / IMPLIB:" [FILENAME REMOVED] .lib" /VERSION:"4.0" / DLL / BASE:" 0x10000" / MACHINE:X86 / ENTRY:" DriverEntry" / WX / OPT:REF / SAFESEH / INCREMENTAL:NO / PGD:" [FILENAME REMOVED] .pgd" / OPT:ICF / ERRORREPORT:PROMPT /MERGE:" .rdata =。text" / NOLOGO / LIBPATH:" \ lib \ i386 \ checked" / LIBPATH:" C:\ Program Files(x86)\ Windows Kits \ 10 \ Lib \ 10.0.10586.0 \ km \ x86 \" / NODEFAULTLIB / SECTION:" INIT,d"