Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Проблема с GetVolumeNameForVolumeMountPoint


Автор: anil 27.2.2009, 11:45
Здравствуйте, форумчане.
Пишу модуль работы с флеш-накопителем, вызываю в нем функцию GetVolumeNameForVolumeMountPoint, компилятор пишет "error C3861: 'GetVolumeNameForVolumeMountPoint': identifier not found, even with argument-dependent lookup". 
windows.h и другие необходимые хидеры подключены. В чем может быть проблема?

PS использую wtl, но все функции winapi видятся нормально, кроме этой.

Автор: xvr 27.2.2009, 12:33
Добавь #define _WIN32_WINNT 0x0501 (или больше) перед #include <windows.h>

Автор: anil 27.2.2009, 12:41
Цитата(xvr @ 27.2.2009,  12:33)
Добавь #define _WIN32_WINNT 0x0501 (или больше) перед #include <windows.h>

пробовал, не помогает.

Автор: 586 27.2.2009, 13:25
Какая у тебя версия студии?

В 2005-й #define _WIN32_WINNT 0x0501 помогает.

Автор: anil 27.2.2009, 14:54
студия у меня 2003я... попробую пересобрать на 2005й smile 

Автор: anil 3.3.2009, 01:36
попробовал сделать на mfc - сделал define в stdafx, теперь выкидывает 11 ошибок типа:

error C2061: syntax error : identifier 'PSCROLLBARINFO'
error C2065: 'PSCROLLBARINFO' : undeclared identifier 

и тд.

С mfc разобрался - если кому интересно, http://www.experts-exchange.com/Programming/System/Windows__Programming/MFC/Q_20529908.html есть ответ. а на wtl по-прежнему не работает.

Автор: GremlinProg 3.3.2009, 17:49
anil, а сколько раз в проекте встречается #include <windows.h>?
попробуй найти первый и поставить define перед ним (вообще, если windows.h подключается в нескольких местах, лучше удалить лишние, толку от них нет, кроме дезинформирмации)

Автор: anil 3.3.2009, 19:06
include один раз встречается. 
поставил 2008 студию и на нее wtl 8.0. после доработки напильником собралось smile

щас буду ковырять на 2003, но вцелом вопрос решен smile 

Автор: anil 3.3.2009, 19:42
кстати, в 2003 студии с wtl 8.0 проблема решилась после изменения констант в stdafx:

#define WINVER        0x0501
#define _WIN32_WINNT    0x0501
#define _WIN32_IE    0x0600

и прописывания 

#define _WIN32_WINNT    0x0501

в maindlg.h, и без такого дублирования не компилится... шаманизм )

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)