[WinAPI] Problem z funkcją "GetLogicalDriveStrings()" (lekcja 4 kursu WinAPI)
Ostatnio zmodyfikowano 2016-10-25 10:25
pan_sansik Temat założony przez niniejszego użytkownika |
[WinAPI] Problem z funkcją "GetLogicalDriveStrings()" (lekcja 4 kursu WinAPI) » 2016-10-23 20:15:32 Witam wszystkich, kiedy wywołuję funkcję GetLogicalDriveStrings(), to w buforze, zamiast liter wszystkich partycji (mam ich łącznie 8), mam tylko "C:\"(czyli jedną). Funkcja nie chce mi "wykryć" reszty partycji. Co jest tym spowodowane? Zamieszczam kod, dla pewności : #include <iostream> #include <windows.h>
using namespace std;
int main() { const WORD rozmiar_buforka = 120; LPSTR Bufor =( LPSTR ) GlobalAlloc( GPTR, rozmiar_buforka ); DWORD Wymagane = GetLogicalDriveStringsA( rozmiar_buforka, Bufor ); if( Wymagane > rozmiar_buforka ) { cout << "Przepraszamy, za maly buforek. Potrzeba : " << Wymagane << " bajtow."; return 1; } cout << "buforek : " << Bufor << endl; GlobalFree( Bufor ); system( "pause" ); return 0; }
|
|
pekfos |
» 2016-10-23 20:47:17 https://msdn.microsoft.com/pl-pl/library/windows/desktop/aa364975(v=vs.85).aspxlpBuffer [out]
A pointer to a buffer that receives a series of null-terminated strings, one for each valid drive in the system, plus with an additional null character. |
To tyle w temacie "problemu" z tą funkcją. //edit: Jeśli podamy jej rozmiar i adres bufora znaków, to ona wypełni go wszystkimi dostępnymi literkami dysków, porozdzielanymi przez znaki zerowe, a na końcu tej wyliczanki postawi podwójny znak zerowy. [..]
cout << "Dostepne dyski:" << endl; do { koniec = 0; if( Bufor[ i ] != 0 ) cout << Bufor[ i ]; else { cout << endl; flaga = 0; } } while( Bufor[ ++i ] != 0 || flaga );
GlobalFree( Bufor ); |
Nawet w kursie miałeś wprost podaną odpowiedź. Po co w ogóle się powołujesz na kurs, skoro przybiegłeś tu z problemem po przeczytaniu ledwie nazwy funkcji..? |
|
j23 |
» 2016-10-24 11:12:46 Nieco prościej: LPSTR p = Bufor;
while( * p ) { std::cout << p << '\n'; p += strlen( p ) + 1; }
|
|
pan_sansik Temat założony przez niniejszego użytkownika |
» 2016-10-25 10:25:12 O kurde faktycznie, teraz widzę jak się wydurniłem, dzięki za pomoc |
|
« 1 » |