2 qq 29869111 qq_29869111 于 2016.09.11 17:00 提问

初学驱动开发。VS2013编译失败,求大神帮忙看看

除了.inf就只有一段简单的代码如下
#include
VOID DriverUnload(PDRIVER_OBJECT pDriverObject)
{
KdPrint(("DriverUnload Routine!\r\n"));
}
NTSTATUS DriverEntry(PDRIVER_OBJECT pDriverObject,PUNICODE_STRING pRegistryPath)
{
KdPrint(("%S\r\n", pDriverObject->DriverName.Buffer));
pDriverObject->DriverUnload = DriverUnload;
return STATUS_SUCCESS;
}

下面是错误

1>------ 已启动生成: 项目: testD, 配置: Win8.1 Debug Win32 ------
1> Stamping Win8.1Debug\testD.inf [Version] section with DriverVer=09/11/2016,16.43.56.454
1> 源.cpp
1>源.cpp(2): warning C4100: “pDriverObject”: 未引用的形参
1>源.cpp(6): warning C4100: “pRegistryPath”: 未引用的形参
1>BufferOverflowFastFailK.lib(gs_driverentry.obj) : error LNK2019: 无法解析的外部符号 _DriverEntry@8,该符号在函数 _GsDriverEntry@8 中被引用
1>D:\大二代码\testD\Win8.1Debug\testD.sys : fatal error LNK1120: 1 个无法解析的外部命令
2>------ 已启动生成: 项目: testD Package, 配置: Win8.1 Debug Win32 ------
2>C:\Program Files (x86)\Windows Kits\8.1\build\WindowsDriver.common.targets(1366,5): error MSB3030: 无法复制文件“D:\大二代码\testD\Win8.1Debug\testD.sys”,原因是找不到该文件。
========== 生成: 成功 0 个,失败 2 个,最新 0 个,跳过 0 个 ==========

求大神帮忙看看

2个回答

zhongxiashuhan
zhongxiashuhan   2016.09.11 21:36

链接错误的话一般不会是代码的错误导致的,应该是编译器错误,检查一下依赖全不全,在DriverEntry 函数前面 extern "C"试试。

qq_29869111
qq_29869111   2016.09.20 21:09

解决了,把.cpp改成.C就行了,好像加extern "C也可以,驱动不直接支持C++

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!