永发信息网

C语言如何让调用笔记本的USB接口啊,求实例

答案:4  悬赏:0  手机版
解决时间 2021-01-04 13:47
C语言如何让调用笔记本的USB接口啊,求实例
最佳答案
1.打开usb接口上的设备,或者打开usb控制器,涉及到windows的驱动访问。一般访问设备使用CreateFile打开设备,然后使用ReadFile/WriteFile读写设备。

2.例程:


    handle hFile = CreateFile(..., FILE_FLAG_overlapped, ...); //指定以异步方式打开
    byte bBuffer[100];
    overlapped o = { 0 };
    o.Offset = 345;
    bool bReadDone = ReadFile(hFile, bBuffer, 100, null, &o); // bReadDone 指定I/O请求是不是以同步方式打开
    dword dwError = GetLastError();
    if (!bReadDone && (dwError == ERROR_IO_PENDING)) { //异步方式打开
        // The I/O is being performed asynchronously; wait for it to complete
        WaitForSingleObject(hFile, infinite);
        bReadDone = TRUE;
    }
    if (bReadDone) {
           // o.Internal contains the I/O error
           // o.InternalHigh contains the number of bytes transferred
           // bBuffer contains the read data
    } else {
            // An error occurred; see dwError
    }
全部回答
没有调用USB接口这种说法吧 可以打开USB接口上的设备,或者打开USB控制器,那涉及到windows的驱动访问。 一般访问设备使用CreateFile打开设备,然后使用ReadFile/WriteFile读写设备。 比如: HANDLE hFile = CreateFile(..., FILE_FLAG_OVERLAPPED, ...); //指定以异步方式打开 BYTE bBuffer[100]; OVERLAPPED o = { 0 }; o.Offset = 345; BOOL bReadDone = ReadFile(hFile, bBuffer, 100, NULL, &o); // bReadDone 指定I/O请求是不是以同步方式打开 DWORD dwError = GetLastError(); if (!bReadDone && (dwError == ERROR_IO_PENDING)) { //异步方式打开 // The I/O is being performed asynchronously; wait for it to complete WaitForSingleObject(hFile, INFINITE); bReadDone = TRUE; } if (bReadDone) { // o.Internal contains the I/O error // o.InternalHigh contains the number of bytes transferred // bBuffer contains the read data } else { // An error occurred; see dwError }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
am、is、are三个词分别的用法
正义巨像皮肤多少钱
单选题下列关于离子共存的说法不正确的是A.在
如图是申报2008年奥运会主办城市的得票情况统
红米Note4X发布了吗,视频呢,怎么看不了,都
财神附近放什么植物好
单选题关于声波,下列说法正确的是A.声波的频
Doyoulike________TV?A.watchB.watching
看道边李树多子折枝
in thought, he almost knocked into the car
彩虹岛收费地图的等级怎么分布?
世界海洋中的最深处位于?
孕妇为什么不能吃木瓜
邮政银行的绿卡通怎样用手机(注意是手机)向
十分紧迫的近义词
推荐资讯
综合性学习(共11分)2012年4月2日是第五个联
爱因斯坦之时间停止
If we a full preparation, the meeting woul
You have done so much work—you ______ pas
(450+450)÷90=A.240B.10C.1900D.360
单选题我国最大的沙漠位于下列哪个盆地中A.柴
歌词曾经对我说,爱像一条河
Couldyouwritemealetter______?A.whenwillyou
黑帮纹身有什么含义a ? 5分
梦见好兄弟和他爸爸到我家做饭
芈月传怎么去掉弹幕
求解答,蓝屏代码已给出
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?