WIN32API: Experten-Frage

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/win32api_experten-frage_122340/page_1 - zur Vollversion wechseln!


Geigerzeiger schrieb am 19.08.2004 um 15:01

Hallo! Google spuckt zu diesem thema nix aus:

Sagt wem der Systemfehler 234: MORE_DATA_AVAILABLE im Zusammenhang mit der Funktion GetVolumeInformation() was?

Bräuchte die fkt. für die Datenträgerbezeichnungsermittlung
Gibts alternativen?
(Braäuchte schnelle Hilfe))- tia


Oculus schrieb am 19.08.2004 um 15:08

ist vielleicht dein string für den volume-namen oder filesystem-namen zu klein?
hast schon GetLastError() gmacht?


Geigerzeiger schrieb am 19.08.2004 um 15:24

ja sicher! drum komm ich ja auf die zahl 234
Der String hat die Länge 200. I glaub ned dass der zu kurz is


that schrieb am 19.08.2004 um 16:38

Poste mal das entsprechende Codestück.


Geigerzeiger schrieb am 19.08.2004 um 16:41

Code:
#include <windows.h>
#include <stdio.h>

TCHAR lpvolName[200];  // Bezeichnung

int main()
{
	int length; DWORD dwErr;
   char root[MAX_PATH];

   DWORD  lpSerial;	// address of volume serial number
   DWORD  lpMCL;	// address of system's maximum filename length
   DWORD  lpFSFlags;	// address of file system flags

   char  lpFSNameBuffer[200];	// address of name of file system
   DWORD  nFSNSize;	// length of lpFileSystemNameBuffer

   strcpy(root, "f:\\");

 	if(GetVolumeInformation(root, lpvolName, length, &lpSerial,
   			&lpMCL, &lpFSFlags, lpFSNameBuffer, nFSNSize) == FALSE) {
                dwErr = GetLastError(); 
            	printf ("Error %d\n", dwErr);
          }
   
   printf("Volumename: %s\n", lpvolName);

   getchar();

   return 0;
}

kann sein dass man da noch einiges tun muß ... habe kA wie man mit der Funktion umgehen muß

Wenn ich für root "c:\\" (hd) oder "f:\\" (cdrom) verwende macht keinen Unterschied


manalishi schrieb am 19.08.2004 um 16:47

najo, machs mit GetVolumeNameForVolumeMountPoint(...) oder gibt die die driveletters zurück?


that schrieb am 19.08.2004 um 16:55

Du hast vergessen, die Längenparameter zu initialisieren.


Geigerzeiger schrieb am 19.08.2004 um 18:10

und wie genau geht das?


that schrieb am 19.08.2004 um 19:43

length = 200;
nFSNSize = 200;

:duh:

(ich würd bei der Gelegenheit die Konstante 200 überall durch ein const int ersetzen)


Geigerzeiger schrieb am 19.08.2004 um 20:10

Zitat von that
length = 200;
nFSNSize = 200;

:duh:

(ich würd bei der Gelegenheit die Konstante 200 überall durch ein const int ersetzen)

jop! Werd ich morgen probieren. thx erstmal

Also wenn die Längen nicht initialisiert werden, spielt sich logischerweise gar nix.


Geigerzeiger schrieb am 21.08.2004 um 15:13

Problem gelöst: Funzt wunderbar!




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025