Форум: "Потрепаться";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];
ВнизПример с книги Delphi 3 не работает на Delphi 6 Найти похожие ветки
← →
syte_ser78 © (2005-01-19 11:06) [0]Переписываю с книги код, запускаю - ошибки в двух строках (для наглядности закоментарены)
Var
VersionBuffer, Version:String;
VersionSize:Integer;
Dummy:Integer;
begin
// VersionSize:=GetFileVersionInfoSize(PChar(Application.ExeName),Dummy);
if (VersionSize<>0) then
begin
SetLength(VersionBuffer,VersionSize);
SetLength(Version,VersionSize);
if (GetFileVersionInfo(PChar(Application.ExeName),
Dummy,VersionSize,PChar(VersionBuffer))) and
(VerQueryValue(PChar(VersionBuffer),
"\StringFileInfo\040904E4\ProductVersion",
// Pointer(Version),VersionSize)) then
frm_main.Caption:=Version;
end;
end;
Как исправить код чтобы работал под Delphi 6?
← →
cyborg © (2005-01-19 11:13) [1]Где ошибки?
← →
syte_ser78 © (2005-01-19 11:15) [2]в тех строках которыя я закоментировал
// VersionSize:=GetFileVersionInfoSize(PChar(Application.ExeName),Dummy);
if (GetFileVersionInfo(PChar(Application.ExeName),
Dummy,VersionSize,PChar(VersionBuffer))) and
(VerQueryValue(PChar(VersionBuffer),
"\StringFileInfo\040904E4\ProductVersion",
// Pointer(Version),VersionSize)) then
← →
syte_ser78 © (2005-01-19 11:17) [3]Types of actual and formal var parameters must be identical
в обоих случаях
← →
cyborg © (2005-01-19 11:17) [4]
Var
VersionBuffer, Version:String;
VersionSize:Cardinal;
Dummy:Cardinal;
← →
Kerk © (2005-01-19 11:17) [5]Dummy: DWORD;
← →
syte_ser78 © (2005-01-19 11:19) [6]Ок! Спасибо!
← →
syte_ser78 © (2005-01-19 11:21) [7]Но условие
if (GetFileVersionInfo(PChar(Application.ExeName),
Dummy,VersionSize,PChar(VersionBuffer))) and
(VerQueryValue(PChar(VersionBuffer),
"\StringFileInfo\040904E4\ProductVersion",
Pointer(Version),VersionSize))
всеравно не выполняется.
Version остается пустым
← →
cyborg © (2005-01-19 11:22) [8]А оно, версия файла, у тебя есть? В опциях компиляции поставь.
← →
syte_ser78 © (2005-01-19 11:24) [9]Project|version|version_info заполнено!
← →
syte_ser78 © (2005-01-19 11:24) [10]Project|option|version_info заполнено!
← →
cyborg © (2005-01-19 11:28) [11]А это что такое?
"\StringFileInfo\040904E4\ProductVersion"
← →
syte_ser78 © (2005-01-19 11:30) [12]Об этом книга умалчивает.
← →
cyborg © (2005-01-19 11:34) [13]Видимо версия файла не так определяется.
У меня есть где-то код определения версии, ща гляну.
← →
cyborg © (2005-01-19 11:36) [14]
function FileVersion(FileName: string): string;
var
Buf: Pointer;
BufSize, Len, dwHandle: Cardinal;
VerInfo: PVSFixedFileInfo;
begin
Result := "";
BufSize := GetFileVersionInfoSize(PChar(FileName), dwHandle);
if BufSize <> 0 then begin
GetMem(Buf, BufSize);
try
GetFileVersionInfo(PChar(FileName), dwHandle, BufSize, Buf);
VerQueryValue(Buf, "\", Pointer(VerInfo), Len);
with VerInfo^ do
Result := Format("%d.%d.%d.%d", [
dwFileVersionMS shr 16,
dwFileVersionMS and $FFFF,
dwFileVersionLS shr 16,
dwFileVersionLS and $FFFF]);
finally
FreeMem(Buf, BufSize);
end;
end;
end;
← →
syte_ser78 © (2005-01-19 11:43) [15]Спасибо!
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.052 c