Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.04;
Скачать: CL | DM;

Вниз

Компиляция   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.022 c
3-1078902392
HeoGtan
2004-03-10 10:06
2004.04.04
Как (для BDE) - определить в БД [PARADOX]:


14-1078437695
_none_
2004-03-05 01:01
2004.04.04
а что если написать вирус для борьбы со спамом?


4-1075209199
graY
2004-01-27 16:13
2004.04.04
Как определить хэндл любого компонента(findWindow не находит)


14-1078899215
Manfred
2004-03-10 09:13
2004.04.04
Полный справочник по Win32API.


14-1078898920
Карелин Артем
2004-03-10 09:08
2004.04.04
Писать ли в резюме результаты инет-тестов?