2012-05-16 2 views
1

에서 GUID_DEVINTERFACE_DISK (또는 _FLOPPY ... 등)을 사용하려하지만 정의되지 않은 참조로 인해 g ++이 여전히 빌드되지 않습니다.GUID_DEVINTERFACE_XXX에 대한 정의되지 않은 참조

나는 SetupAPI 및 incuded nstddstor.h와 (requirered) (http://msdn.microsoft.com/en-us/library/windows/hardware/ff545824%28v=vs.85%29.aspx) 연결했습니다.

나는 initguid.h를 포함하여 문제를 해결할 수는 있지만 실제로는 그렇지 않다는 것을 알았다. 또한

, 내가 GUID g = GUID_DEVINTERFACE_DISK; 같은 GUID 변수에 영향을 미치는 시도하고 내가 GUID_DEVINTERFACE_DISK에 내 마우스를 넣어 경우는 (nstddstor.h) 정의이고, 일식 나를 보여줍니다 때,하지만 컴파일 한 후, 그것은 여전히 ​​작동하지 않습니다.

모든 솔루션?

답변

1

I는 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 
+0

... 덕분에, 그것은 잘 지금 작동을! :) – perelo

+0

@perelo - 방금 운이 좋았습니다. 어쨌든, 만약 그것이 작동한다면 (* 메타 데이터를 받아들이십시오.) (http://meta.stackexchange.com/q/5234). – Lumi