Свободное общение

L-e-o-N

Старожил
врядли. название процедур можно посмотреть, а параметры в этих процедурах вроде нет...
Смотря на каком языке написано, какое соглашение вызовов. В языке c++ все параметры шифруются в имя функции, благодаря чему их потом можно обратно расшифровать. Но есть и минус в таком подходе: простые и понятные функции превращаются в вот такую "красоту": ?a@@YAHD@Z
 

L-e-o-N

Старожил
А почему нет?


Про кодеблокс промолчу, там как бы автоматически консоль не закрывается после выполнения, а вот в студии я ничего похожего не нашел. Так что в ней либо через команду либо через батник, выбор не велик.
А вообще, как ты тогда видишь результат выполнения операций в консоли, ведь тебе же нет нужды "ждать нажатия клавиш"? :)
В разделе отладка нужно настроить вот такую команду:
cmd /k "путь к exe параметры" и все должно заработать (не проверял, просто проявил знание командной строки) Параметр /k означает что будет выполнена команда в скобках а за тем командная строка будет ожидать следующей команды
А еще в Visual Studio есть комбинация клафиш ctrl + f5 (которая не даст закрыться коммандной строке после завершения программы)
 

L-e-o-N

Старожил
Флейм

Всем доброго времени суток.
Есть ли такая программа, которая при указание ей на,допустим файл exe,ищет все данные реестра относящиеся к этому файлу (игру,программу).
Программа [STRIKE]Your Unin-staller![/STRIKE] по завершению удаления программы ищет в реестре остатки записей от удаляемой программы.
PS: Сори что не в ту тему, просто не нашёл тему в которой это можно было бы спросить ))
программа procmon, только она ищет во время выполнения
 

sergey3695

Ветеран
Модератор
Код:
[setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}
OutputDir=.

[Languages]
Name: "rus"; MessagesFile: "compiler:Languages\Russian.isl"

[Code]
function argv(Param: String): TArrayOfString;
begin
    SetArrayLength(Result, 2);
    case Param[1] of
        '"': begin
            Result[0] := Copy(Param, 2, Pos('.exe', Lowercase(Param))+2);
            Result[1] := RemoveQuotes(Trim(Copy(Param, Length(Result[0])+3, Length(Param))));
        end;
    else
        begin
            Result[0] := Copy(Param, 1, Pos('.exe', Lowercase(Param))+3);
            Result[1] := RemoveQuotes(Trim(Copy(Param, Length(Result[0])+1, Length(Param))));
        end;
    end;
end;


function GetInstalledProgramm(Param: String): Boolean;
var
    Names, cl: TArrayOfString;
    i, ResultCode: Integer;
    DisplayName, UninstallString: String;
begin
    if RegGetSubkeyNames(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall', Names) then
    for i := 0 to GetArrayLength(Names)-1 do
    begin
        RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\' + Names[i], 'DisplayName', DisplayName);
        if Pos(Lowercase(DisplayName), Lowercase(Param)) > 0 then
        begin
            Result := True;
            if MsgBox('Программа установки обнаружила уже установленную программу ' + DisplayName + '.'#13#10'Вы желаете предварительно удалить ее?', mbInformation, MB_YESNO) = idYes then
            begin
                if RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\' + Names[i], 'UninstallString', UninstallString) then
                begin
                    cl := argv(UninstallString);
                    if not Exec(cl[0], cl[1], '', SW_SHOW, ewWaitUntilTerminated, ResultCode) then
                        MsgBox('Ошибка удаления.'#13#10'' + SysErrorMessage(ResultCode) + '.'#13#10'Вероятно, деинсталлятор был перемещен, удален или переименован.', mbError, MB_OK);
                end;
            end;
            Break;
        end;
    end;
end;

procedure InitializeWizard();
begin
    GetInstalledProgramm('AutoCad');
end;
 

санчез

Новичок
скажите что такое PZLIB от Razor 1911 ...какую роль он играет при сжатии например PZLIB+SREP+LZMA ..СО СРЕПОМ и LZMA всё и так уже давно понятно но какую роль здесь в этом сжатии играет PZLIB? я его уже конешно себе прописал в isdone и вместе с ним запаковал небольшой кусочек данных..но тока не понимаю для чего он? ведь на сжатие он не влияет. что с ним что без него размер остался одним и тем же.
 

dixen18

Ветеран
санчез, Он не сжимает а наоборот - разжимает сжатые потоки в игровых файлах. Разжатые файлы потом гораздо эффективнее жмутся нежели оригинальные
Речь идет об алгоритме ZLIB. Есть и другие но их pzlib разжимать не умеет..Тут на помощь придет xtool
 

санчез

Новичок
санчез, Он не сжимает а наоборот - разжимает сжатые потоки в игровых файлах. Разжатые файлы потом гораздо эффективнее жмутся нежели оригинальные
Речь идет об алгоритме ZLIB. Есть и другие но их pzlib разжимать не умеет..Тут на помощь придет xtool
что обозначают эти настройки для lzma... lzma:a1:mfbt4:d200m:fb128:mc1000:lc8 если можно по подробней
 

санчез

Новичок
просто с такими настройками у меня сжалось лучше на целых 10 мб чем просто с lzma:ultra
 

санчез

Новичок
сейчас я эксперементирую над игрой Rise of the tomb raider....с помощью PZLIB+SREP+LZMA на данный момент уже вижу что игра разжимается тоесть больше своего размера..пока ещё идёт компрессия..ну посмотрим потом скока в конечном счёте она будет весить..потом отпишусь...
 

санчез

Новичок
санчез, Гигов 15 должно быть..с лолз - 12-13
всё уже сделал весила 23 гига установленная....репак мой получился 15,5 гигов что я считаю довольно не плохо. Размер у меня получился даже меньше чем у R.G.Механики и Xataba но чутка больше чем у Qoob и Fitgirl... P/S что касается лолз не это уже чересчур....если только попробовать его на игре с небольшим размером 6-7 гигов весом..а так ну нафиг....
 
Последнее редактирование:

Nemko

Дилетант
Модератор
Доброго, вот у меня проблемка: решил "закостылить" CheckListBox для ISSprite, сделал грубый пример для теста, а происходит утечка памяти при каждой прорисовке (spApplyChanges(h: HWND)), что позже приводит к выходу из работоспособности Setup'a\ISSprite. Код "костыля" прилагаю, рад буду советам (поэтому тема в Свободном Разделе):

34.png
 

Вложения

  • 37.7 KB Просмотры: 8

Shegorat

Lord of Madness
Администратор
Nemko, Дааа, есть такое
Пока на плюсы не перепишу, ничего делать не буду. Не хочу больше с дельфи возиться
 

Nemko

Дилетант
Модератор
Shegorat, спасибо за ответ, я думал я схожу с ума, у же и версии Inno перепробовал пачку :bad:. Да кстати в build'e #40 и #27 (0.0.7.46) такого вроде нет, жаль там все Export'ы зашифрованы, а мне лень подбирать и дизассемблировать. Желаю удачи, больше постараюсь не мучить своими вопросами.
 

sergey3695

Ветеран
Модератор
Залил бы сюда build'e #40 и #27 (0.0.7.46), а то у себя такого не нашел. Раз более свежая версия в паблике, проблем не наблюдаю с этим.
 

Nemko

Дилетант
Модератор
sergey3695, "затестил" я build #27 и сравнил с новой версией, пришел к выводу - утечка происходит в новой версии, при манипуляции с Btn (Buttons), а конкретно (тестил) при изменении позиции\размеров (WM_MOVE\WM_SIZE). А в старой версии, вроде нет проблем, но мало тестил. Вообщем, если Автор даст добро, только так могу вынуть что-то из "за пазухи".
 

Nemko

Дилетант
Модератор
YURSHAT, доброго, а темную тему как активировать? Чет не помню где это было.
 
Сверху