我试图在函数GUID_DEVINTERFACE_DISK
中使用SetupDiGetClassDevs
(或_FLOPPY ......等),但由于未定义的引用,g ++仍然无法构建。
我已经使用SetupAPI链接并将nstddstor.h包含为requiered(http://msdn.microsoft.com/en-us/library/windows/hardware/ff545824%28v=vs.85%29.aspx)。
我看到包括initguid.h可以解决问题,但它不适合我。
另外,当我尝试将GUID变量影响为
GUID g = GUID_DEVINTERFACE_DISK;
如果我把鼠标放在GUID_DEVINTERFACE_DISK上,eclipse会告诉我它在哪里定义(nstddstor.h),但是在编译之后,它仍然不起作用。
任何解决方案?
答案 0 :(得分:2)
我没有Windows DDK,因此我无法验证它a user on another forum reports that it works by including initguid.h
before ntddstor.h
,因此以下可能工作:
#include <initguid.h>
#include <ntddstor.h>
#include <Setupapi.h>
// Code copied from:
// http://msdn.microsoft.com/en-us/library/windows/hardware/ff551069.aspx
int main(void) {
HDEVINFO hDevInfo;
hDevInfo = SetupDiGetClassDevs(&GUID_DEVINTERFACE_VOLUME,
NULL, NULL, DIGCF_PRESENT | DIGCF_INTERFACEDEVICE);
}
cl /nologo /W4 /EHsc /MD guid.cpp Setupapi.lib