Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/12: Рейтинг темы: голосов - 12, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 20.10.2017
Сообщений: 14

WinAPI, GetVolumeInformation

28.12.2020, 17:03. Показов 2495. Ответов 4

Студворк — интернет-сервис помощи студентам
Добрый день, меня интересуют 2 проблемы, связанные с данной командой.
C++
1
2
3
4
5
6
7
8
9
char NameBuffer[MAX_PATH];
char SysNameBuffer[MAX_PATH];
if (GetVolumeInformation(L"Z:\\", (LPWSTR)NameBuffer, MAX_PATH,
        &VSNumber, &MCLength, &FileSF, (LPWSTR)SysNameBuffer, MAX_PATH))
    {
        cout << NameBuffer << endl;
        cout << SysNameBuffer << endl;
        cout << VSNumber << endl;
    }
1) Вывод неправильный
Вывод:
>2K9
N
8e75b448

2) Компилятор выдает предупреждение C6386 "Переполнение буфера при записи в "NameBuffer" и "SysNameBuffer": Доступный объем для записи равен 260 байт, однако записать можно только 520 байт."
Я пробовал sizeof(NameBuffer) и _countof(NameBuffer). Ничего не меняется.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.12.2020, 17:03
Ответы с готовыми решениями:

GetVolumeInformation!
include &lt;Windows.h&gt; include &lt;iostream&gt; int main() { char Name; char NameFileSystem; DWORD SerialNumber; DWORD...

GetVolumeInformation
Доброго времени суток.Имеется задача получить имя системного тома, использую функцию GetVolumeInformation и параметр IpRootPathName хочу...

GetVolumeInformation, тернарная операция и if
#include &lt;windows.h&gt; #include &lt;iostream&gt; int main(){ LPCWSTR lpFileName = L&quot;*&quot;; WIN32_FIND_DATA FindData; HANDLE...

4
841 / 347 / 68
Регистрация: 20.11.2012
Сообщений: 819
28.12.2020, 17:33
Лучший ответ Сообщение было отмечено HateAllPeople как решение

Решение

HateAllPeople, сегодня в теме уже писал в чем проблема. Не согласованы буферы. Сделайте:

C++
1
2
3
4
5
6
7
8
9
WCHAR NameBuffer[MAX_PATH];
WCHAR SysNameBuffer[MAX_PATH];
if (GetVolumeInformation(L"Z:\\", (LPWSTR)NameBuffer, MAX_PATH,
        &VSNumber, &MCLength, &FileSF, (LPWSTR)SysNameBuffer, MAX_PATH))
    {
        wcout << NameBuffer << endl;
        wcout << SysNameBuffer << endl;
        wcout << VSNumber << endl;
    }
0
1 / 1 / 0
Регистрация: 20.10.2017
Сообщений: 14
28.12.2020, 17:36  [ТС]
спасибо, помогло. Сколько же нового, прямо голова разрывается
0
28.12.2020, 17:43

Не по теме:

Цитата Сообщение от HateAllPeople Посмотреть сообщение
спасибо, помогло. Сколько же нового, прямо голова разрывается
HateAllPeople, книга обязательная к прочтению при изучении WinAPI - "Дж.Рихтер - Создание эффективных Win32-приложений". Вторая глава как раз посвящена Unicode, там найдете ответы.

0
1 / 1 / 0
Регистрация: 20.10.2017
Сообщений: 14
28.12.2020, 17:54  [ТС]
СПАСИБО ЗА НАСТАВЛЕНИЕ И ПОМОЩЬ!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.12.2020, 17:54
Помогаю со студенческими работами здесь

GetVolumeInformation выдает разный Serial
LPWSTR VolumeNameBuffer = 0; wchar_t FileSystemNameBuffer; LPDWORD sz = 0,fs = 0; unsigned long drive_sn = 0; ...

Не получается вывести результат функции GetVolumeInformation
#include &quot;stdafx.h&quot; #include &quot;windows.h&quot; #include &lt;stdio.h&gt; #include &lt;iostream&gt; int _tmain(int argc, _TCHAR* argv) { BOOL...

Функция GetVolumeInformation() не выводит результатов. Исправить код
Вот код: char VolumeName ; char FileSystem ; int Serial; bool flag=GetVolumeInformation (L&quot;C:\\&quot;,(LPWSTR)VolumeName,...

GetVolumeInformation()
я использую функцию GetVolumeInformation(), чтоб определить файловую систему диска Е:. почему, если я использую константу в качестве...

Неправильная работа GetVolumeInformation
LPTSTR all_logical_discs, //все диски one_disc; TCHAR tmp;//временная для каждого диска all_logical_discs = new...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru