查看: 5745|回复: 14
收起左侧

[已解决] vs2012的error c2065问题,求解决

 关闭 [复制链接]
温馨小屋
头像被屏蔽
发表于 2013-7-26 09:44:29 | 显示全部楼层 |阅读模式
本帖最后由 温馨小屋 于 2013-7-26 21:17 编辑

我声明了一个UNICODE_STRING变量,就报c2065,但是上面那个UNICODE_STRING变量就没报,而且这样的问题时有时无,困扰多日,求解决。
代码:
#include <ntddk.h>
//#include <wdm.h>
#include "dev.h"
VOID DriverUnload(PDRIVER_OBJECT driver)
{
        DbgPrint("aaaaaaaaaaaa");
}
NTSTATUS CreateDevice(PDRIVER_OBJECT drv)
        {
                NTSTATUS status;
                PDEVICE_OBJECT pDevObj;
                PDEVICE_EXTENSION pDevEx;
                UNICODE_STRING devname;//?没事
                RtlInitUnicodeString(&devname,L"\\Device\\mydev");
                status = IoCreateDevice(drv,sizeof(pDevEx),&devname,FILE_DEVICE_UNKNOWN,0,0,&pDevObj);//创建设备
                if (!NT_SUCCESS(status))
                        return status;
                pDevObj->Flags=DO_BUFFERED_IO;//设置设备为缓冲区
                DbgPrint("succeed");
                pDevEx=(PDEVICE_EXTENSION)pDevObj->DeviceExtension;//得到设备扩展!!!!!!!!!!1
                pDevEx->ustrDeviceName=devname;
                UNICODE_STRING link;//error 2065 "link":未声明的标识符?
                RtlInitUnicodeString(&link,L"\\??\\HELDEV");
                pDevEx->ustrSymLinkName=link;
                status=IoCreateSymbolicLink(&link,&devname);//链接名,设备名
                if (!NT_SUCCESS(status))
                {
                        DbgPrint("error");
                        return status;
                }
                return STATUS_SUCCESS;
        }
VOID exe(PDRIVER_OBJECT driver,PUNICODE_STRING reg)
{
        NTSTATUS status;
        status=CreateDevice(driver);
        if (!NT_SUCCESS(status))
                DbgPrint("error");
}
NTSTATUS DriverEntry(PDRIVER_OBJECT driver,PUNICODE_STRING reg)
{
        DbgPrint("%ws\n",driver->DriverName);
        DbgPrint("aassss");
        DbgPrint("%ws\n",reg->Buffer);
        DbgPrint("lllllll");
        driver->DriverUnload=DriverUnload;
        /*UNICODE_STRING devname;
        RtlInitUnicodeString(&devname,L"\\Device\\mydev");
        PDEVICE_OBJECT dev;
        PDEVOBJ_EXTENSION pdevext;
        NTSTATUS sata=IoCreateDevice(driver,sizeof(pdevext),&devname,FILE_DEVICE_UNKNOWN,0,0,&dev);*/
        //NTSTATUS status;

        exe(driver,reg);
        return STATUS_SUCCESS;
}

       

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
恋爱的夏娜
头像被屏蔽
发表于 2013-7-26 12:29:52 | 显示全部楼层
有时候,编译器的语法检查找到的问题,不是真正问题所在的地方,可以的话,重新考虑一下你前面写的代码可能哪里会有问题吧,驱动编写我是看不懂了。
温馨小屋
头像被屏蔽
 楼主| 发表于 2013-7-26 13:38:24 | 显示全部楼层
恋爱的夏娜 发表于 2013-7-26 12:29
有时候,编译器的语法检查找到的问题,不是真正问题所在的地方,可以的话,重新考虑一下你前面写的代码可能 ...

原来我写的代码比这长多了,就因为出错,我按书上的代码一个字不差打上了,还是这样,我怀疑是编译器设置问题
恋爱的夏娜
头像被屏蔽
发表于 2013-7-26 14:26:01 | 显示全部楼层
温馨小屋 发表于 2013-7-26 13:38
原来我写的代码比这长多了,就因为出错,我按书上的代码一个字不差打上了,还是这样,我怀疑是编译器设置问题

你认为,你的这个东西,是属于VS2012里面的什么类型?驱动程序?Win32应用程序?还是别的什么?
也许你的类型被你搞错了也说不定。
温馨小屋
头像被屏蔽
 楼主| 发表于 2013-7-26 14:32:31 | 显示全部楼层
恋爱的夏娜 发表于 2013-7-26 14:26
你认为,你的这个东西,是属于VS2012里面的什么类型?驱动程序?Win32应用程序?还是别的什么?
也许你的 ...

选的是内核模式驱动程序

就是这项

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
恋爱的夏娜
头像被屏蔽
发表于 2013-7-26 14:36:03 | 显示全部楼层
温馨小屋 发表于 2013-7-26 14:32
选的是内核模式驱动程序

就是这项

选择另外两个呢?用户模式驱动或者说带有预编译头的内核模式驱动呢?
温馨小屋
头像被屏蔽
 楼主| 发表于 2013-7-26 15:42:04 | 显示全部楼层
恋爱的夏娜 发表于 2013-7-26 14:36
选择另外两个呢?用户模式驱动或者说带有预编译头的内核模式驱动呢?


我发现把两个UNICODE_STRING声明和在一个声明中就好了,其他类型的变量也是,在一个函数中不能用两个语句声明两个同类型变量;
但是为什么呢???
恋爱的夏娜
头像被屏蔽
发表于 2013-7-26 18:25:18 | 显示全部楼层
温馨小屋 发表于 2013-7-26 15:42
我发现把两个UNICODE_STRING声明和在一个声明中就好了,其他类型的变量也是,在一个函数中不能用两个语句 ...

你的书上,VC6.0没有这种语法要求么?我感到很是好奇啊。
温馨小屋
头像被屏蔽
 楼主| 发表于 2013-7-26 20:36:40 | 显示全部楼层
恋爱的夏娜 发表于 2013-7-26 18:25
你的书上,VC6.0没有这种语法要求么?我感到很是好奇啊。

书上没有这样做,我刚把两个PDRIVER_OBJECT变量放在一句话里,但还是c2056
vs这个东西,一个程序,写完了报错,重启一遍就过了,真不知道它怎么设计的
温馨小屋
头像被屏蔽
 楼主| 发表于 2013-7-26 21:04:51 | 显示全部楼层
恋爱的夏娜 发表于 2013-7-26 18:25
你的书上,VC6.0没有这种语法要求么?我感到很是好奇啊。

我把.c改成.cpp就没了,但是多了3个无法解析的外部命令
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2025-1-15 22:03 , Processed in 0.143155 second(s), 17 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表