Форум: "Прочее";
Текущий архив: 2009.12.27;
Скачать: [xml.tar.bz2];
ВнизПосоветуйте как лучше поступить. Найти похожие ветки
← →
DVM © (2009-10-24 14:16) [0]Мне надо сделать сделать порядка 20 билдов одной и тоже программы, различающихся лишь тем, что в одном из модулей будет прошита разная константа у всех. Ну типа серийного номера, но не серийный номер, используется не для защиты, а скорее для информационных целей. Константа потом будет использована в программе.
Билдить все руками неохота, потом лучше день потерять зато потом за час долететь.
Как такое лучше провернуть? Как бы вы поступили? Для меня предпочтительнее компилировать бат файлом, вопрос в том как лучше менять значение константы, в остальном все понятно.
← →
Упс (2009-10-24 14:24) [1]В файле настроек?
← →
Riply © (2009-10-24 14:26) [2]> [0] DVM © (24.10.09 14:16)
> Билдить все руками неохота, потом лучше день потерять зато потом за час долететь.
> Как такое лучше провернуть? Как бы вы поступили?
> Для меня предпочтительнее компилировать бат файлом, вопрос в том как лучше менять значение константы, в остальном все понятно.
Добавить DEFINE в командну строку ?
← →
Pavia © (2009-10-24 14:27) [3]Инклюдишь файл со своей константой. Через "copy con" меняешь константу.
← →
Суслик_ (2009-10-24 14:45) [4]
> Pavia © (24.10.09 14:27) [3]
>
> Инклюдишь файл со своей константой. Через "copy con" меняешь
> константу.
+1
я так и дела.
если константа числовая, то можно в бинарнике править. надо только придумать, как найти место. можно db инструкции использовать.
← →
DVM © (2009-10-24 14:48) [5]
> Упс (24.10.09 14:24) [1]
> В файле настроек?
В файле настроек чего? Моей программы? Если так, этот вариант отпадает. Этой константе незачем быть "на виду".
> Riply © (24.10.09 14:26) [2]
> Добавить DEFINE в командну строку ?
О таком варианте уже думал, просто хотел узнать про альтернативы.
> Pavia © (24.10.09 14:27) [3]
> Инклюдишь файл со своей константой. Через "copy con" меняешь
> константу.
Этот вариант тоже второй который пришел в голову.
Хорошо спасибо, собственно как я и хотел либо возьму [2] либо [3]
← →
Дмитрий Белькевич (2009-10-24 14:59) [6]Как мы делаем, в батнике: dcc32.exe any.dpr -B -DCOPY%1
ну а далее - либо руками номера подставляешь параметр батника, либо вызываешь из другого батника:
for /L %%i IN (1,1,3) DO call BuildPackage.bat %%i
В самом проекте - скопипащенные дефайны.
← →
DVM © (2009-10-24 15:01) [7]
> Дмитрий Белькевич (24.10.09 14:59) [6]
Спасибо
← →
XXL (2009-10-24 15:02) [8]... и даже fc /b элементарно выявит различия между билдами :)
← →
DVM © (2009-10-24 15:05) [9]
> XXL (24.10.09 15:02) [8]
> ... и даже fc /b элементарно выявит различия между билдами
> :)
А и пусть.
Во-первых, никому и в голову не придет сравнивать.
Во-вторых, маловероятно, что два разных билда окажутся в одних руках.
В третьих, да ради бога, пусть сравнивают, замена или подмена этой константы никаких преимуществ не дает. Это не защита.
← →
Суслик_ (2009-10-24 17:41) [10]у VmProtect есть т.н. водяные знаки - заносит в программу уникальные коды, которые в общем случае трудно вычистить. В результате по бинарнику можно понять владельца.
← →
Омлет © (2009-10-24 21:24) [11]Имеется скрипт StringReplaceInFile.vbs
On Error Resume Next
fileName = WScript.arguments(0)
patrn = WScript.arguments(1)
replStr = WScript.arguments(2)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objShellApp = CreateObject("Shell.Application")
LogPath = objFSO.GetParentFolderName(WScript.ScriptFullName)
replaceTextInFile fileName, patrn, replStr
Function replaceTextInFile(FilePath, patrn, replStr)
On Error Resume Next
Set TFile = objFSO.OpenTextFile(FilePath, 1)
fileText = TFile.ReadAll
fileText = ReplaceTest(fileText, patrn, replStr)
Set WFile = objFSO.OpenTextFile(FilePath, 2)
WFile.WriteLine fileText
WFile.Close
End Function
Function ReplaceTest(src_str, patrn, replStr)
Dim regEx
Set regEx = New RegExp
regEx.Pattern = patrn
regEx.Global = False
regEx.IgnoreCase = True
ReplaceTest = regEx.Replace(src_str, replStr)
End Function
Он вызывается из батника с передачей параметров: путь до файла, в котором заменять; текст, который заменяем; текст, на который заменяем.
Я брал файл-шаблон, где на нужном месте было что-то вроде %PARAM_X%, копировал его в нужную папку, заменял в нем %PARAM_X% на необходимый текст и компилировал.
И накаких проблем.
← →
Омлет © (2009-10-24 21:30) [12]objShellApp и LogPath по ходу не нужны, при последней правке забыл убрать.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2009.12.27;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.007 c