Подскажите как изменить значение констант в уже откомпилированном файле с помощью другой программы. Т.е. необходимо создать своего рода конфигуратор для готовой программы. Может где-то написано, но к сожалению я не нашел.
У вас неопределенно описаны условия задачи. Возникает много уточняющих вопросов:
1) Что вы называете константой? Значение, описанное в программе как
const var_name: type; или это некая неименованная константа в некоем цикле
while (i < 1000) do begin... ? Сколько этих констант? Вы знаете местонахождение этих констант в exe/dll-файле или их еще надо там найти?
2) Откомпилированный файл свой или чужой? Исходники есть? (я уж не спрашиваю, почему не делается изменение констант с помощью самой программы, видимо, есть на то причины)
Если у вас все свое и нужно сделать свой конфигуратор, то в исходной программе можно сделать свои метки перед константами, чтобы в двоичном файле их можно было найти. Например:
Код:
var cIntParameter: ShortString = 'imetka'#0#0#0#0;
function GetIntParameter: Integer;
var p: PByte;
begin
p := @cIntParameter[1];
Inc(p, 6);
Result := PInteger(p)^;
end;
При обращении к параметру в программе используйте GetIntParametr();
С помощью другой программы можно найти в двоичном файле фразу 'imetka', за которой следует 4 байта, куда и надо поместить значение.