Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
6-1075074207
Daniel
2004-01-26 02:43
2004.04.04
Какое различать сокеты?


7-1074893939
Raki
2004-01-24 00:38
2004.04.04
Имя процесса


3-1078726173
Мал0й
2004-03-08 09:09
2004.04.04
Установка BDE


1-1079330022
senator
2004-03-15 08:53
2004.04.04
Работа с DLL


3-1078209489
Mdaaa
2004-03-02 09:38
2004.04.04
Paradox без BDE :))))





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский