| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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 | ||
пробовал, не помогает. |
| Автор: 586 27.2.2009, 13:25 |
| Какая у тебя версия студии? В 2005-й #define _WIN32_WINNT 0x0501 помогает. |
| Автор: anil 27.2.2009, 14:54 |
| студия у меня 2003я... попробую пересобрать на 2005й |
| Автор: 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. после доработки напильником собралось щас буду ковырять на 2003, но вцелом вопрос решен |
| Автор: 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, и без такого дублирования не компилится... шаманизм ) |