lovehunterboy
驱动小牛
驱动小牛
  • 注册日期2008-05-29
  • 最后登录2010-04-16
  • 粉丝2
  • 关注0
  • 积分67分
  • 威望463点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3965回复:5

这些错误是什么意思啊,前辈们来指点一下啊,谢谢 

楼主#
更多 发布于:2008-07-28 10:51
一段很简单的程序:
extern "C" {
# include <NTDDK.h>
 }

extern "C"
NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject,IN PUNICODE_STRING RegstryPath)
{
    UNICODE_STRING namestring;
    NTSTSTUS status;
    PDEVICE_OBJECT fcdo;
    RtlInitUcicodeString(&namestring,L"\\FileSystem\\Filters\\SFilter");
    status=IoCreateDevice(    DriverObject,
                                  0,                                   &namestring,                             FILE_DEVICE_DISK_FILE_SYSTEM,                       FILE_DEVICE_SECURE_OPEN,                           0,                                    &fcdo);
    if(status==STATUS_OBJECT_PATH_NOT_FOUND)
    {
        RtlUnicodeString(&namestring,L"\\FileSystem\\SFilterCDO");
        status=IoCreateDevice( DriverObject,
                                0,
                      &namestring,                              FILE_DEVICE_DISK_FILE_SYSTEM,                      FILE_DEVICE_SECURE_OPEN,                          0,
                      &fcdo);
     }
    if(!NT_SUCCESS(status))
    {
        KdPrint(( "SFilter!DriverEntry: Error creating control device object \"%wZ\",
status=%08x\n", &nameString, status ));
    }
    else if(!NT_SUCCESS(status))
    {
        KdPrint(( "SFilter!DriverEntry: Error creating control device object \"%wZ\",
status=%08x\n", &nameString, status ));
    }
return status;
}
    
编译时出些这些错误,不知道错在那:
1>cpp1.cpp(9) : error C2065: 'NTSTSTUS' : undeclared identifier
1>cpp1.cpp(9) : error C2146: syntax error : missing ';' before identifier 'status'
1>cpp1.cpp(9) : error C2065: 'status' : undeclared identifier
1>cpp1.cpp(11) : error C2065: 'RtlInitUcicodeString' : undeclared identifier
1>cpp1.cpp(22) : error C2065: 'RtlUnicodeString' : undeclared identifier
1>cpp1.cpp(30) : error C2001: newline in constant
1>cpp1.cpp(31) : error C2001: newline in constant
1>cpp1.cpp(35) : error C2001: newline in constant
1>cpp1.cpp(36) : error C2001: newline in constant
1>cpp1.cpp(30) : error C1057: unexpected end of file in macro expansion
zmwk
驱动中牛
驱动中牛
  • 注册日期2001-05-15
  • 最后登录2009-04-05
  • 粉丝0
  • 关注0
  • 积分59分
  • 威望51点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-08-07 10:54
1>cpp1.cpp(9) : error C2065: 'NTSTSTUS' : undeclared identifier
A: NTSTSTUS -> NTSTATUS  拼写错误
1>cpp1.cpp(9) : error C2146: syntax error : missing ';' before identifier 'status'
和前一个错误一起的。。。
1>cpp1.cpp(9) : error C2065: 'status' : undeclared identifier
和前一个错误一起的。。。
1>cpp1.cpp(11) : error C2065: 'RtlInitUcicodeString' : undeclared identifier
拼写错误:RtlInitUcicodeString -> RtlInitUnicodeString 并检查是否缺少头文件:winternl.h
1>cpp1.cpp(22) : error C2065: 'RtlUnicodeString' : undeclared identifier
疑似:应该为RtlInitUnicodeString

1>cpp1.cpp(30) : error C2001: newline in constant
1>cpp1.cpp(31) : error C2001: newline in constant
1>cpp1.cpp(35) : error C2001: newline in constant
1>cpp1.cpp(36) : error C2001: newline in constant
1>cpp1.cpp(30) : error C1057: unexpected end of file in macro expansion
以上这堆错误都是由于KdPrint的括号使用错误引起的:
=%08x\n" -> =%08x\n")
&nameString, status )) -> &nameString, status )

写程序既需要技巧,也要心细啊。。。
A strong man can save himself. A great man can save another.
lovehunterboy
驱动小牛
驱动小牛
  • 注册日期2008-05-29
  • 最后登录2010-04-16
  • 粉丝2
  • 关注0
  • 积分67分
  • 威望463点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-08-08 08:32
批评得是,以后好好改正!
coyove
驱动牛犊
驱动牛犊
  • 注册日期2009-03-08
  • 最后登录2009-05-18
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望51点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2009-04-09 16:48
LZ你一定要用C++写驱动吗?
guard366
驱动牛犊
驱动牛犊
  • 注册日期2009-04-30
  • 最后登录2010-10-21
  • 粉丝0
  • 关注0
  • 积分36分
  • 威望351点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2009-05-01 11:23
extern "C" 也可以是说在.cpp文件里啊,不是用c++写代码,楼上小弟弟
成熟的产品!
liuganchao
驱动牛犊
驱动牛犊
  • 注册日期2009-06-22
  • 最后登录2012-04-20
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望151点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2009-07-08 06:43
兄弟有很多原因的!!最好把代码上传一份!!
VC默认C++
extern "C"  说明是以C方式编译!!
自己看看基础!!      
游客

返回顶部