-
-
[求助]DDkWizard如何添加自己的cpp。
-
发表于:
2012-8-15 01:39
4645
-
第一次用DDKWizard,环境是WIN7 32位+VS2008+工程创建的时候使用ddkbuild.cmd。
发现一个问题:
DDKWizard产生的原生代码直接编译,不会有任何问题。
之后我写了个头文件Head.h,代码如下:
#ifndef HEADFILE_H
#define HEADFILE_H
#ifdef __cplusplus
extern "C" {
#endif
#include <ntddk.h>
#include <string.h>
#ifdef __cplusplus
};
#endif
void P(); //函数声明。
#endif
然后又新建了一个名为Head.cpp的源文件代码如下:
#include "Head.h"
void P(){
DbgPrint("First Runing DDKWizard");
}
然后在DDKWizard自动生成的 工程名.cpp(也就是主文件)的DriverEntry入口出中调用P();
提示:
1>1>driver4.obj : error LNK2019: unresolved external symbol "void __stdcall P(void)" (?P@@YGXXZ) referenced in function "long __stdcall DRIVER4_DispatchDeviceControl(struct _DEVICE_OBJECT *,struct _IRP *)" (?DRIVER4_DispatchDeviceControl@@YGJPAU_DEVICE_OBJECT@@PAU_IRP@@@Z)
1>1>e:\users\admini~1\docume~1\visual~1\projects\driver4\driver4\driver4.obj : error LNK2019: unresolved external symbol "void __stdcall P(void)" (?P@@YGXXZ) referenced in function "long __stdcall DRIVER4_DispatchDeviceControl(struct _DEVICE_OBJECT *,struct _IRP *)" (?DRIVER4_DispatchDeviceControl@@YGJPAU_DEVICE_OBJECT@@PAU_IRP@@@Z)
1>1>e:\users\admini~1\docume~1\visual~1\projects\driver4\driver4\objchk_win7_x86\i386\Driver4.sys : fatal error LNK1120: 1 unresolved externals
1>1>e:\users\admini~1\docume~1\visual~1\projects\driver4\driver4\objchk_win7_x86\i386\driver4.sys : error LNK1120: 1 unresolved externals
请问这是怎么回事?
如果我是直接在驱动主文件内定义P函数的代码则没有问题。
为什么添加了个CPP就有问题了?
求解决.....总不能把所有函数都写在主文件里,那不乱死了。试过几次都是这样,烦死了。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!