阅读:1042回复:3
CreateFile问题。。。谢谢
我已经获得了一个设备的
DevicePath, \\\\?\\hid#vid_08ca&pid_0001&col01#5&13132334&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030} 但当我想 HANDLE pDevicefile = CreateFile( ifDetail->DevicePath, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); 时,却得到了INVALID_HANDLE_VALUE的 pDevicefile GetLastError()返回 5 请问怎么回事啊? 谢谢。 另外 GetLastError()具体内容? |
|
|
沙发#
发布于:2003-01-02 08:47
改成 \\\\\\\\?\\\\hid#vid_08ca&pid_0001&col01#5&13132334&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
|
|
|
板凳#
发布于:2003-01-02 11:40
GetLastError == 5 为 Access is denied.
来自MSDN |
|
地板#
发布于:2003-01-02 14:37
改成 \\\\\\\\.\\\\hid#vid_08ca&pid_0001&col01#5&13132334&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
在CreateFile(ifDetail->DevicePath,..)这个参数里都是用\\\\\\\\.\\\\ 试试看.你可以用 void PrintError(){ char *errMsg; FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &errMsg, 0, NULL ); printf(\"%s\\n\", errMsg ); LocalFree( errMsg ); return; }这个函数得到GetLastError()的中文意思 |
|