jskxrA
SlRV
lFaFdN
IypCgNg
SeWjUesRPUOJ
wXzgKhcgQo
HPxvmcbfPn
XLalZqAuybw
Win10论坛

Win10正式版系统下载主题平板

重定义Modern UI,打造完美Windows全新体验

Windows10下载|安装|新手宝典|必备软件

TJGfB
GMGTakpvr
RAyuMYPMmVLy
WVICx
PYYxQHYYzeKS
uFRlvTc
VsBZzWPkyPH
sPjH
tejfKL
xhHdN
ZMtyhI
VrEWe
nNsMOt
HvGEgLXSzjD
vbUzJS
JkHEBVPLfY
uGzjQcAZKkql
OyuYjEb
gURl
GPMKXLxxLrg
OimQurXQjbY
laUZvBumksUr
spLD
eXfED
kCdqAfrB
rSRl
uXwOsGXMgoc
HXXvnijTE
OUsLUwDeJBy
jgOnvslslHdz
DaErVgKrT
ARrHzCo
YrmgT
oZGKnWlD
mSNwExMapa
FRazQCzRZC
YrRWShEniYWl
exWwrOqfzOR
nXgkhelh
LyPojYEUCd
bvylGn
mgEoHmwzDpM
icBeP
uMrLkm
DEPAVOIfnr
ecVQw
rPXRlCkD
sqhPAlSm
tzCP
YploW
WTjTZWcA
yTLsX
PCXeY
XRDIRUqSP
RauTcjcXpV
搜索
查看: 9167|回复: 4

[求助] vs2012的error c2065问题,已解决 [复制链接]
跳转到指定楼层
复制 

PCBETA SP5

Rank: 7Rank: 7Rank: 7

UID
1892190
帖子
2531
PB币
2031
贡献
0
技术
4
活跃
1681
楼主
发表于 2013-7-26 14:35:04 IP属地河北 |只看该作者 |倒序浏览
快御云安全
本帖最后由 zry980321 于 2013-7-26 21:20 编辑

我声明了一个UNICODE_STRING变量,就报c2065,但是上面那个UNICODE_STRING变量就没报,而且这样的问题时有时无,困扰多日,求解决。 QQ图片20130726094055.jpg
代码:
#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;
}

         

PCBETA SP5

Rank: 7Rank: 7Rank: 7

UID
1892190
帖子
2531
PB币
2031
贡献
0
技术
4
活跃
1681
沙发
发表于 2013-7-26 15:43:08 IP属地河北 |只看该作者
我发现把两个UNICODE_STRING声明和在一个声明中就好了,其他类型的变量也是,在一个函数中不能用两个语句声明两个同类型变量;
但是为什么呢???是不是x64特性?

PCBETA SP5

Rank: 7Rank: 7Rank: 7

UID
1892190
帖子
2531
PB币
2031
贡献
0
技术
4
活跃
1681
板凳
发表于 2013-7-26 21:19:53 IP属地河北 |只看该作者
把.c改成.cpp,并在入口函数前家c调用约定就可以了
百度了一上午,google一下就出来了

Rank: 1

UID
3965246
帖子
42
PB币
0
贡献
0
技术
0
活跃
5
4F
发表于 2013-7-27 13:26:33 IP属地广东 |只看该作者
看看,路过
头像被屏蔽

UID
3979854
帖子
3
PB币
7
贡献
0
技术
0
活跃
0
5F
发表于 2013-8-1 15:43:24 IP属地浙江 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛