|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
20.04.2008, 20:42 | #1 |
Пользователь
Регистрация: 20.04.2008
Сообщений: 32
|
проблемы с GetLogicalDriveStrings - Список дисков
Здравствуйте !!!
Чёто немогу сформировать список Дисков, вот код: Код:
И в итоге вывести в COMBOBOX
Имеющий желание - ищет возможность,
не имеющий желание - ищет причину. --- Истина где-то рядом Последний раз редактировалось Alexoid; 20.04.2008 в 20:47. |
20.04.2008, 20:59 | #2 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Тоже вкратце. Никакой список никуда не попадает - посмотрите, для какой строки Вы память выделяете, а в какую хотите записать.
|
20.04.2008, 21:08 | #3 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
там проблема не только в этом но в самом алгоритме.
надо примерно вот так: Код:
|
20.04.2008, 22:16 | #4 |
Пользователь
Регистрация: 20.04.2008
Сообщений: 32
|
Вот немного подправил - Добавил :
PUSH 255 PUSH HEAP_ZERO_MEMORY PUSH hH CALL HeapAlloc MOV szDrive, EAX да тут я малость не подумал, меня то збило что некоторые API ф-ции выделяют память сами, записывая туда необходимую инфу, и присваивают указатель переменной- что-то вроде этого. по-моему так поступают с некоторыми параметрами advapi ф-ции по работе с реестром или я опять ошибаюсь? Результат: Код:
что скажите?
Имеющий желание - ищет возможность,
не имеющий желание - ищет причину. --- Истина где-то рядом Последний раз редактировалось Alexoid; 20.04.2008 в 22:24. |
20.04.2008, 22:30 | #5 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Код:
|
20.04.2008, 23:16 | #6 |
Пользователь
Регистрация: 20.04.2008
Сообщений: 32
|
Вроде ВСЁ попёрло (изменил ещё осталеное - LEA на MOV поменял). Пасибо-ч-к-и %-)
Имеющий желание - ищет возможность,
не имеющий желание - ищет причину. --- Истина где-то рядом |
20.04.2008, 23:22 | #7 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
|
21.04.2008, 10:48 | #8 |
Пользователь
Регистрация: 20.04.2008
Сообщений: 32
|
Копирование строки szDrive в szDriveOUT мне необходимо, т.к я хочу ещё с помощью ф-ции GetDriveType к каждому диску добавить описание....
И ещё хотел спросить - после выполнения ф-ции GetLogicalDriveStrings строка szDrive выглядит так: "C:\0D:\0E:\0", где 0 - разделитель, если расчитывать минимальный размер буфера, то получается: в Английском алфавите - 24 буквы, следовательно 24*4=96, так ? Я незнаю принято ли увас тут просто выкладывать код, вроде как учебных примеров просто думаю, что в целом у меня неплохо получилось(тут и работа со списками и динамическое выдилени памяти и работа со строками - копирование), вот итог: Код:
Имеющий желание - ищет возможность,
не имеющий желание - ищет причину. --- Истина где-то рядом Последний раз редактировалось Alexoid; 21.04.2008 в 13:10. |
21.04.2008, 12:23 | #9 | |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Цитата:
http://msdn2.microsoft.com/en-us/lib...75(VS.85).aspx |
|
21.04.2008, 14:06 | #10 |
Пользователь
Регистрация: 20.04.2008
Сообщений: 32
|
Я правелно Вас понял, если её вызвать вот так:
PUSH 0 PUSH 0 CALL GetLogicalDriveStrings то eax будет содержать число-размер буфера щас попробую.... да фантастика, ещё раз убеждаюсь, что WINAPI - Это СИЛА, с 5-ю дисками он выдал 21, а с 6 -25, что и выходит: 25-1=24(убрал последний ноль) 24/6=4 - каждый диск по 4 байта. Ну это конечно уже решать тому кто прогу делает либо 2 раза вызывать GetLogicalDriveStrings и терять драгоциенные такты процессора, но выделять точное кол-во памяти; либо выделить максимум и прибавить еще 5-6 байтов для уверенности, тем более если размер буфера не такой уж и большой. До самой истины дошли, тут на этом посте можно Диссертацию накатать покрайней мере основа положена
Имеющий желание - ищет возможность,
не имеющий желание - ищет причину. --- Истина где-то рядом Последний раз редактировалось Alexoid; 21.04.2008 в 14:41. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Данные-проверка-список (список на другом листе) | Inbox | Microsoft Office Excel | 7 | 26.12.2008 01:43 |
Каталогизатор дисков | puma | Софт | 3 | 28.05.2008 16:05 |
строка Список логичечких дисков | PuzzleC | Общие вопросы C/C++ | 2 | 01.11.2007 15:24 |
Список дисков в DriveComboBox | Alar | Компоненты Delphi | 0 | 29.10.2006 19:35 |