阅读:1508回复:2
为什么*.c的文件编译驱动,定义的变量会出错
把文件名换成.cpp就不会出错,这是为什么
部分代码: #include <wdm.h> …… NTSTATUS Wdm1AddDevice(IN PDRIVER_OBJECT DriverObject,IN PDEVICE_OBJECT pdo) { DbgPrint("AddDevice"); NTSTATUS status; PDEVICE_OBJECT fdo; //创建功能设备对象fdo status=IoCreateDevice(DriverObject, sizeof(WDM1_DEVICE_EXTENSION), NULL,//no name FILE_DEVICE_UNKNOWN, 0, FALSE,//Not exclusive &fdo); if(!NT_SUCCESS(status)) return status; …… 1>errors in directory e:\mine\4 1>e:\mine\4\inti.c(61) : error C2275: 'NTSTATUS' : illegal use of this type as a n expression 1>e:\mine\4\inti.c(61) : error C2146: syntax error : missing ';' before identifi er 'status' 1>e:\mine\4\inti.c(61) : error C2065: 'status' : undeclared identifier 1>e:\mine\4\inti.c(62) : error C2275: 'PDEVICE_OBJECT' : illegal use of this typ e as an expression 1>e:\mine\4\inti.c(62) : error C2146: syntax error : missing ';' before identifi er 'fdo' 1>e:\mine\4\inti.c(62) : error C2065: 'fdo' : undeclared identifier 1>e:\mine\4\inti.c(65) : error C2065: 'status' : undeclared identifier 1>e:\mine\4\inti.c(71) : error C2065: 'fdo' : undeclared identifier 1>e:\mine\4\inti.c(72) : error C2065: 'status' : undeclared identifier 1>e:\mine\4\inti.c(73) : error C2065: 'status' : undeclared identifier …… …… |
|
沙发#
发布于:2009-08-22 18:16
兄弟,你c语言没学好吧?
DbgPrint("AddDevice"); NTSTATUS status; PDEVICE_OBJECT fdo; 改为 NTSTATUS status; PDEVICE_OBJECT fdo; DbgPrint("AddDevice"); BTW: 建议参加我们即将开办的驱动开发网络培训:) |
|
|
板凳#
发布于:2009-08-22 21:41
呵呵,原来如此啊,我看例子都是C++的都忘了c要先定义。
谢谢! 再过几天要去上学了,没太多时间,只能自己慢慢磨了…… |
|