阅读:1012回复:1
请教一个调试出现的问题,分数大放送!
我写一个打开设备的句柄时,编译一直不能通过,出错如下:Wdm1Test.cpp
Linking... Wdm1Test.obj : error LNK2001: unresolved external symbol __imp__SetupDiGetDeviceInterfaceDetailA@24 Wdm1Test.obj : error LNK2001: unresolved external symbol __imp__SetupDiDestroyDeviceInfoList@4 Wdm1Test.obj : error LNK2001: unresolved external symbol __imp__SetupDiEnumDeviceInterfaces@20 Wdm1Test.obj : error LNK2001: unresolved external symbol __imp__SetupDiGetClassDevsA@16 Debug/Wdm1Test.exe : fatal error LNK1120: 4 unresolved externals Error executing link.exe. Wdm1Test.exe - 5 error(s), 0 warning(s) 布置是什么原因。 原代码如下: HANDLE GetDeviceViaInterface( GUID* pGuid, DWORD instance) { // Get handle to relevant device information set HDEVINFO info = SetupDiGetClassDevs(pGuid,NULL,NULL,DIGCF_PRESENT|DIGCF_DEVICEINTERFACE); if(info==INVALID_HANDLE_VALUE) { printf(\"No HDEVINFO available for this GUID\\n\"); return NULL; } // Get interface data for the requested instance SP_DEVICE_INTERFACE_DATA ifdata; ifdata.cbSize = sizeof(ifdata); if(!SetupDiEnumDeviceInterfaces(info, NULL, pGuid, instance, &ifdata)) { printf(\"No SP_DEVICE_INTERFACE_DATA available for this GUID instance\\n\"); SetupDiDestroyDeviceInfoList(info); return NULL; } // Get size of symbolic link name DWORD ReqLen; SetupDiGetDeviceInterfaceDetail(info,&ifdata,NULL,0,&ReqLen,NULL); PSP_DEVICE_INTERFACE_DETAIL_DATA ifDetail = (PSP_DEVICE_INTERFACE_DETAIL_DATA)(new char[ReqLen]); if( ifDetail==NULL) { SetupDiDestroyDeviceInfoList(info); return NULL; } // Get symbolic link name ifDetail->cbSize = sizeof(SP_INTERFACE_DEVICE_DETAIL_DATA); if( !SetupDiGetDeviceInterfaceDetail(info, &ifdata, ifDetail, ReqLen, NULL, NULL)) { SetupDiDestroyDeviceInfoList(info); delete ifDetail; return NULL; } printf(\"Symbolic link is %s\\n\",ifDetail->DevicePath); // Open file HANDLE rv = CreateFile( ifDetail->DevicePath, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if( rv==INVALID_HANDLE_VALUE) rv = NULL; delete ifDetail; SetupDiDestroyDeviceInfoList(info); return rv; } ///////////////////////////////////////////////////////////////////////////// |
|
|
沙发#
发布于:2003-03-13 19:50
解决了,呵呵
|
|
|