Без кода мы должны угадать.Мои предположения:
- Вам не удалось экранировать
\
как "C:\\"
. - Вы передаете строку ANSI в версию API Unicode или наоборот.
Очень трудно понять, как API мог потерпеть неудачу, если это не было ошибкой кодирования такого рода.
После добавления кода в ваш вопрос теперь ясно, чтоВторым из этих пунктов является объяснение.Вы передаете строковые данные ANSI в Unicode API, и это, конечно, не удается.
Чтобы исправить это, вам, вероятно, лучше всего переключить весь код на использование строк Unicode.
В дополнение кПроблемы с Unicode / ANSI, я думаю, что код обработки буфера подозрительный.Я не знаю, почему вы берете 4 символа на диск.Я думаю, что GetLogicalDriveStrings может возвращать не отображенные диски.