2014-05-12 3 views
1

Я строю конфигурацию проекта GTK + VS2010 на (VS2013), и я пытаюсь добавить функциональность папки обзора (я хочу использовать собственный путь к Windows). Я использую следующий код:ошибка C2061: синтаксическая ошибка: идентификатор 'IXMLDOMDocument'

#include <windows.h> 
#include <ShlObj.h> 
DWORD WINAPI BrowseFolder(void *ptr) 
{ 
    char path[MAX_PATH]; 

    cchar * path_param = (cchar*)ptr; 
    BROWSEINFO bi = { 0 }; 
    bi.lpszTitle = ("Select Folder"); 
    bi.ulFlags = BIF_RETURNONLYFSDIRS | BIF_NEWDIALOGSTYLE; 
    bi.lpfn = BrowseCallbackProc;//callback function defined.. 
    bi.lParam = (LPARAM)path_param; 

    LPITEMIDLIST pidl = SHBrowseForFolder(&bi); 

    if (pidl != 0) 
    { 
     //get the name of the folder and put it in path 
     SHGetPathFromIDList(pidl, path); 

     //free memory used 
     IMalloc * imalloc = 0; 
     if (SUCCEEDED(SHGetMalloc(&imalloc))) 
     { 
      imalloc->Free(pidl); 
      imalloc->Release(); 
     } 

     strcpy(g_sDefaultDir, path); 
     return 0; 
    } 
} 

но при компиляции я получаю сообщение об ошибке

1> C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v7.1A \ Include \ shobjidl.h (17624): ошибка C2061: синтаксическая ошибка: идентификатор 'IXMLDOMDocument'

Это моя конфигурация: Я бегу VS2010 решение по VS2013 Использование стандартных библиотек для Windows Не Использование ATL и использование многобайтовых символов

Любые идеи?

+0

Я также попытался использовать различные SDK, v7.0A и Windows Kits 8.0 и 8.1 – Yazan

ответ

0

Я нашел 2 способа ответить на мою проблему.

Я имел MSXML и ISoftDistExt определены ранее решить проблему неоднозначности, так что мне пришлось #undef их как следующий:

#undef __msxml_h__ 
#undef __ISoftDistExt_INTERFACE_DEFINED__ 
#include <MsXml.h> 
#include <ShlObj.h> 

Кроме того, вы можете использовать оператор #import как follownig

#undef __msxml_h__ 
#undef __ISoftDistExt_INTERFACE_DEFINED__ 
#import <msxml6.dll> 
using namespace MSXML2; 
#include <ShlObj.h> 

Надеюсь, что это поможет кому-то позже.

Смежные вопросы