| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 769 人关注过本帖
标题:【求助】打开设备总是失败
取消只看楼主 加入收藏
gpp6025
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2010-7-8
结帖率:84.62%
收藏
已结贴  问题点数:20 回复次数:2 
【求助】打开设备总是失败
CreateFile执行总是失败!~各位路过的大大们帮忙看看吧~~小弟不胜感激~~
#include "stdafx.h"
#include <string.h>
#include <Windows.h>

int _tmain(int argc, _TCHAR* argv[])
{
    HANDLE devicehdle;
    void* dlinkname=malloc(sizeof(LPCTSTR));
    memcpy(dlinkname,"\\\\.\\A_safe",13);
    devicehdle=CreateFile((LPCTSTR)dlinkname,
        GENERIC_READ|GENERIC_WRITE,0,0,
        OPEN_EXISTING,FILE_ATTRIBUTE_SYSTEM,0);
    if(devicehdle==INVALID_HANDLE_VALUE)
    {
        printf("the device open fail!!");
    }else{
        printf("the device open ok !!");
    }
    CloseHandle(devicehdle);
    return 0;
}
生成的设备和符号链接名都没有问题,~就是上面的代码有问题~~
那应该就是    void* dlinkname=malloc(sizeof(LPCTSTR));
    memcpy(dlinkname,"\\\\.\\A_safe",13);这两句的问题了~CreateFile函数要求的(LPCTSTR)类型要怎么写啊?

[ 本帖最后由 gpp6025 于 2011-5-10 22:07 编辑 ]
搜索更多相关主题的帖子: 不胜感激 
2011-05-10 17:52
gpp6025
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2010-7-8
收藏
得分:0 
回复 2楼 debroa723
我将代码改成下面的,
我是用CreateFile来打开一个设备~,在MSDN上打开Communication Device设备必须设置第五个参数为OPEN_EXISTING和最后一个参数为NULL,
对filename这个参数设备的话是一个符号链接名吧,而且是一个空结尾字符串?
但是通过getlasterror得到错误号是2也就是找不到指定文件,也就是filename有问题吧?我不知道我下面的这个用字符组来写错在了哪~~

#include "stdafx.h"
#include <string.h>
#include <Windows.h>

int _tmain(int argc, _TCHAR* argv[])
{
    HANDLE devicehdle;
    char dlinkname[11]=“\\\\.\\A_safe”;
    devicehdle=CreateFile((LPCTSTR)dlinkname,
        GENERIC_READ|GENERIC_WRITE,0,0,
        OPEN_EXISTING,FILE_ATTRIBUTE_SYSTEM,0);
    if(devicehdle==INVALID_HANDLE_VALUE)
    {
        printf("the device open fail!!");
    }else{
        printf("the device open ok !!");
    }
    CloseHandle(devicehdle);
    return 0;
}
2011-05-12 22:21
gpp6025
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2010-7-8
收藏
得分:0 
回复 2楼 debroa723
你说的要绝对路劲是不是要把“\\\\.\\A_safe” 改成"DosDevice\\\\.\\A_safe" 吗??
2011-05-12 22:24
快速回复:【求助】打开设备总是失败
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.034026 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved