Thema: Delphi VolumeMountPoints

Einzelnen Beitrag anzeigen

Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#16

AW: VolumeMountPoints

  Alt 28. Apr 2014, 16:28
Hallo,

Habs grad ausprobiert und bei mir gehts so:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var Buffer: Array[0..100] of AnsiChar; // Je nachdem wie viel du willst/kannst/sollst
begin
  GetVolumeNameForVolumeMountPoint('D:\\',@Buffer[0], Length(Buffer));
  Caption := Buffer; // \\?\Volume{6f55826c-bfa1-11e1-86d0-20cf30e33243}\
end;
Der Fehler war, dass du für den Volume name Speicher bereitstellen musst. Bei mir sind es die 101 Bytes/AnsiChars des "Buffer"-Arrays. Im 3. Parameter musst du die länge des Buffers übergeben den du bereitstellst. Da hast du einfach das uninitialisierte "i" übergeben in der irgendeine beliebige Zahl drin stehen kann.
Daher hat Windows versucht in nicht angeforderten Speicher zu schreiben, was mit einer Exception geendet hat.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."

Geändert von Neutral General (28. Apr 2014 um 16:37 Uhr)
  Mit Zitat antworten Zitat