Надо мне сделать ф-ю для вывода некоторой системной информации, но почему-то вместо пути каталога временных файлов выдает какой-то бред ...
type TSystemInfo = ( siCompName, siWinDir, siTempPath );
// ....
function getSysInfo(const Info: TSystemInfo): String; const size: DWORD = 255; var buf: PChar; begin GetMem(buf, size);
case Info of siCompName: GetComputerName(buf, size); siWinDir: GetWindowsDirectory(buf, size); siTempPath: GetTempPath(size, buf); end;
Result := buf; FreeMem(buf, size); end;
// ... someString := getSysInfo(siTempPath);
volvo
15.03.2007 23:00
Странно, у меня нормально выдает... Только
var size: DWORD = 255; // <-- С константой не компилируется...
function getSysInfo(const Info: TSystemInfo): String; var buf: PChar; begin GetMem(buf, size);
case Info of siCompName: GetComputerName(buf, size); siWinDir: GetWindowsDirectory(buf, size); siTempPath: GetTempPath(size, buf); end;
Result := buf; FreeMem(buf, size); end;
klem4
16.03.2007 0:02
Спасибо, убрал size из констант и все теперь правильно показывает, только у меня и с константой компилировалось ... это должно настораживать ?
volvo
16.03.2007 0:10
От настроек зависит... Я убрал галку с Assignable Typed Constants, как видишь, лучше оно не будет компилироваться, чем выдаст некорректный результат...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.