2014-04-04 41 views
0

現在我編寫這些代碼在哪個庫IFileDialog位於

IFileDialog *pfd = NULL; 
       HRESULT hr = CoCreateInstance(CLSID_FileOpenDialog, 
        NULL, 
        CLSCTX_INPROC_SERVER, 
        IID_PPV_ARGS(&pfd)); 

編譯時出現的錯誤後, 「IFileDialog未在此範圍內聲明」

什麼是該類庫?

+1

[文檔](http://msdn.microsoft.com/en-us/library/windows/desktop/bb775966(V = vs.85)的.aspx)說,在Vista上shobjidl.h + 。 – chris

+0

我試過了,但出現同樣的錯誤,'am windows 8.1 – Naggar

+3

您還需要通過[設置'WINVER'或'_WIN32_WINNT'](http://msdn.microsoft.com/)請求Windows Vista及更高版本的功能EN-US /庫/窗/桌面/ aa383745(v = vs.85)的.aspx#setting_winver_or__win32_winnt)。 – IInspectable

回答

3

你不需要知道哪個庫實現它。這是一個COM接口,您可以調用CoCreateInstance來調用。該系統完成剩下的工作。它在COM註冊表中查找實現的COM服務器並實例化對象。

爲了編譯,您只需包含Shobjidl.h,並適當地定義版本宏。您需要

#define _WINNT_WIN32 0600