匿名用户
1级
2012-03-14 回答
没有调用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
}
追问:
如果我用C编程,能否实现从键盘输入十进制数,从计算机的USB接口输出其对应的二进制码呢?
追答:
可以的
获取键盘输入最简单的就是使用键盘钩子,获取用户输入
向USB接口输出的话,你应该是向连接到USB接口的某个设备输出吧:打开这个设备,向他写数据。
但USB的设备各种各样,驱动也各异;你得清楚他是如何工作的,应该如何操作他。
如果是你自己做的USB设备,则需要做usb驱动或者使用通用的USB驱动