Форум: "Основная";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];
Вниз
Компиляция Найти похожие ветки
← →
Ivander (2004-03-10 14:30) [0]Компилирую один и тот же исходник два раза. Соответственно, получается два exe-шника. Бинарное сравнение дает разлячие этих exe-шников. Вопрос: почему бинарники получаются разными с одним и тем же исходником и как сделать, чтобы различий не было?
← →
KSergey © (2004-03-10 14:52) [1]Точно не знаю, но есть у меня подозрение, что туда, возможно, время компиляции вшивается. Или может что-то вычисляется на его основе - не знаю. Зачем - не знаю. Размер - одинаковый. А различия лишь в нескольких байтах. Верно?
← →
Digitman © (2004-03-10 14:54) [2]для начала в опциях проекта сделай
Include version Information in project = False
← →
Kerk © (2004-03-10 14:56) [3]
> KSergey © (10.03.04 14:52) [1]
Время линковки должно в заголовок PE писаться...
← →
Ivander (2004-03-11 09:23) [4]Действительно, отличия в нескольких байтах (20-30), но только для времени, мне кажется, этого многовато, хотя если он ставит время компиляции каждого модуля, то тогда возможно.
А "Include version Information in project" у меня всегда стоит False.
И все таки, если это дата со временем, то можно ли как-то это дело отключить?
Это мне надо для контроля версий бинарников: в разных местах лежат одни и те же бинарники, надо узнать с одного ли исходника они компилировались.
← →
TUser © (2004-03-11 09:26) [5]Для контроля версий надо поставить как раз
Include version Information in project = true
← →
Кот Бегемот © (2004-03-11 11:17) [6]Еще больше ты удивишься если после Compile сделаешь Build :)
← →
Erik © (2004-03-11 11:40) [7]Можеш использовать эту функцию ля контроля версий.
include version Information in project = True
function GetCurrentVersion(const FileName: string): Int64;
var
Info: Pointer;
Temp,
InfoSize,
FileInfoSize: DWORD;
FileInfo: PVSFixedFileInfo;
CurFile: string;
begin
Result := 0;
CurFile := LowerCase(FileName);
InfoSize := GetFileVersionInfoSize(PChar(CurFile), Temp);
if InfoSize > 0 then
begin
GetMem(Info, InfoSize);
FileInfoSize := SizeOf(FileInfo^);
try
GetFileVersionInfo(PChar(CurFile), 0, InfoSize, Info);
VerQueryValue(Info, "\", Pointer(FileInfo), FileInfoSize);
with FileInfo^ do
begin
Result := dwFileVersionMS;
Result := Result shl 32;
Result := Result + dwFileVersionLS;
end;
finally
FreeMem(Info, InfoSize);
end;
end;
end;
Еще можно навести мышкой на фаил нажать правую кнопку и выбрать property. Дальше будет прикольно. :)
← →
Kerk © (2004-03-11 12:08) [8]
> Erik © (11.03.04 11:40) [7]
Ты эту ветку читал?
← →
EXE7 (2004-03-11 12:51) [9]>Ivander
Да не парься,это просто мусор,или не мусор - но нам он ненужен.
Я месяц назад задавал вопрос похожий...
Любая прога на делфи обращается к реестру к
ветке ...Borland/...на предмет наличия имени моего EXE.
Смотрел по RegMon,свои ,чужие Exe.
А options-link... не помогает
Абсурд-а если у юзера Borland нестоит?
Еще делфя добавляет картиночки в ресурсах...
Форма без кнопок от 250Kb...
Просто мусор добавляет,но работает...
← →
KSergey © (2004-03-11 12:58) [10]Ну естественно мусор! Зафиг вы ее тогда используете??
← →
EXE7 (2004-03-12 10:40) [11]>Зафиг вы ее тогда используете??
Кого?
Delphi?
я на D4 и только на API,
если VCL-то тут чистить надо Exe потом.
А еще я в VC++ ...
← →
Erik © (2004-03-12 11:41) [12]To Kerk
А то читал, а вот ты был невнимателен. Я дал ответ на основной вопрос. "Это мне надо для контроля версий бинарников: в разных местах лежат одни и те же бинарники, надо узнать с одного ли исходника они компилировались."
P.S.
А что надо менять версии продуктов я думаю автор сам догадается.
← →
Yuri Btr © (2004-03-18 15:33) [13]Вообще-то очень странно.
У меня на XP (D7) всегда один и тотже результат.
Может вы используете какие нибудь эксперты или их заменители, которые при компиляции добавляют что то своё в проект?
Вы проверьте это на пустом проекте и убедитесь что скорее всего размер не изменится.
← →
Yuri Btr © (2004-03-18 15:37) [14]И что значит
>Бинарное сравнение
каким способом вы их сравниваете?
← →
Yuri Btr © (2004-03-18 15:37) [15]И что значит
>Бинарное сравнение
каким способом вы их сравниваете?
← →
WebErr © (2004-03-18 15:53) [16]Народ, вы чо! Это - инфа о дате и времени создания (компиляции) проекта.
← →
Yuri Btr © (2004-03-18 16:13) [17]to WebErr ©
to Kerk ©
to KSergey ©
Действительно вшивается время и дата компиляции - точнее создания файла и занимает это 4 байта в смещении 4 байта от начала т.н. COFF заголовка, который идёт сразу же после файловых заголовков (File Headers, MS-DOS Stub (Image Only), Signature (Image Only))
или вы думаете что там пишется "18 марта две тысячи четвертого года, пятнадцать часов десять минут"?
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.029 c