@mynameisflipe

Как передать в GetDriveType() переменную, полученную при помощи GetLogicalDrives()?

Недавно начал изучать c++ и win api, возник такой вопрос:
можно ли, получив битовую маску доступных дисков, сформировать имя диска и передать его в GetDriveType() для определения его типа?
т.е. как-то так:
DWORD drives = GetLogicalDrives();
LPCWSTR d[4];
int n;
for (int i = 0; i < 26; i++) {
	n = ((drives >> i) & 0x00000001);
	if (n == 1) {
		d[0] = LPCWSTR(65 + i);  // символ диска
		d[1] = L":";
		d[2] = L"\\";
		d[3] = L"\0"; 
		driveType = GetDriveType(*d);
		cout << driveType << endl;
}
}
  • Вопрос задан
  • 538 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Вам надо изучить, что такое массивы и строки в C/C++ и чем строки отличаются от символов. Ну и внимательно читать описание функций API.
UINT WINAPI GetDriveType(
  _In_opt_ LPCTSTR lpRootPathName
);

LPCTSTR - Long Pointer to Constant Tchar STRing
Ваше же объявление
LPCWSTR d[4];
задаёт массив указателей на строки. Далее в цикле в него записывается приведённый к указателю int и указатели на три разные строки.
Хорошая статья - habrahabr.ru/post/164193
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы