[Evaporation Project] Разработка
- $t@t!c_V()1D
- Разработчик
- Сообщения: 2639
- Зарегистрирован: 06.12.2007
- Благодарил (а): 10 раз
- Поблагодарили: 29 раз
Я не пойму, там что переделывать-то? Си-соглашение (cdecl; после объявления функции) и пошел дальше. Логика есть? Или ты просто на дух не переносишь С++ :) ?
Another guy on them internets
Уважайте команду CSMania.RU - задавайте вопросы правильно!
Уважайте команду CSMania.RU - задавайте вопросы правильно!
- $t@t!c_V()1D
- Разработчик
- Сообщения: 2639
- Зарегистрирован: 06.12.2007
- Благодарил (а): 10 раз
- Поблагодарили: 29 раз
На "CFTAPI_closeLogs" cdecl; 2 раза не надо - одного достаточно. Delphi - вещь понятливая, 2 раза объяснять не надо .{CFTAPI_API} procedure CFTAPI_closeLogs(); cdecl; cdecl; external CFTAPI_API_LIB name 'CFTAPI_closeLogs';
Здесь исправь ;) - в .h-файле же * стояла перед переменной.function CFTAPI_createArchive(gcfPath: PChar; // input gcf or ncf file
outputPath: PChar; // output folder
loggerName: PChar; // logger name as displayed in logs
taskName: PChar; // will be valuated with the current task name (for multitask applications)
taskProgress: pCardinal): Integer; cdecl; external CFTAPI_API_LIB name 'CFTAPI_createArchive';
То же самое, что и в предыдущем.{CFTAPI_API} function CFTAPI_createUpdateFile(archivePath: PChar; // input archive file
gcfPath: PChar; // input gcf or ncf file
commonName: PChar; // input ncf common sub folder name or NULL
outputPath: PChar; // output folder
loggerName: PChar; // logger name as displayed in logs
taskName: PChar; // will be valuated with the current task name (for multitask applications)
taskProgress: pCardinal; // will be valuated with the current task progress (for multitask applications)
pleaseStop: pInteger; // pointer to an int to be set to 1 in order to ask the task to stop (for multitask applications)
securedUpdates: Integer): Integer; cdecl; external CFTAPI_API_LIB name 'CFTAPI_createUpdateFile'; // set true to serialize GCF header after each update (slow)
То же самое и к CFTAPI_applyUpdate -
должно быть.taskProgress: pCardinal;
pleaseStop: pInteger;
Another guy on them internets
Уважайте команду CSMania.RU - задавайте вопросы правильно!
Уважайте команду CSMania.RU - задавайте вопросы правильно!
- $t@t!c_V()1D
- Разработчик
- Сообщения: 2639
- Зарегистрирован: 06.12.2007
- Благодарил (а): 10 раз
- Поблагодарили: 29 раз
И да, если небудет работать cdecl;, то попробуй stdcall; , хотя обычно С-функции без заранее объявленных соглашении по умолчанию используют С-соглашение (логично, правда? %) ).
Another guy on them internets
Уважайте команду CSMania.RU - задавайте вопросы правильно!
Уважайте команду CSMania.RU - задавайте вопросы правильно!
-
- Разработчик
- Сообщения: 910
- Зарегистрирован: 09.01.2009
- Откуда: Переезжаю в /dev/null
- Благодарил (а): 7 раз
- Поблагодарили: 65 раз
- Контактная информация:
Добавлено спустя 25 минут 7 секунд:
Вот, исправленная рабочая версия) Я потестил даже немного...
[spoiler=""cftAPI.pas""]
Код: Выделить всё
{
cftAPI - by steamCooker
Ported to Delphi by MOZGIII
}
unit cftAPI;
interface
const
CFTAPI_API_LIB = 'cftAPI.dll';
// log levels
LOG_LEVEL_EVERYTHING = 0;
LOG_LEVEL_DEBUG = 1;
LOG_LEVEL_INFO = 2;
LOG_LEVEL_ERROR = 3;
LOG_LEVEL_TODO = 4;
LOG_LEVEL_DISABLED = 5;
// init the logs, MUST be called prior to any other function
{CFTAPI_API} function CFTAPI_initLogs(logFile:PChar; // output log file or NULL
logStdout: Boolean): Integer; cdecl; external CFTAPI_API_LIB name '?CFTAPI_initLogs@@YAHPAD_N@Z'; // print logs on stdout
// release the logs, to be called at the end
{CFTAPI_API} procedure CFTAPI_closeLogs(); cdecl; external CFTAPI_API_LIB name '?CFTAPI_closeLogs@@YAXXZ';
// specify the log level
{CFTAPI_API} procedure CFTAPI_setLogLevel(level: Integer); cdecl; external CFTAPI_API_LIB name '?CFTAPI_setLogLevel@@YAXH@Z';
// create an archive file,
{CFTAPI_API} function CFTAPI_createArchive(gcfPath: PChar; // input gcf or ncf file
outputPath: PChar; // output folder
loggerName: PChar; // logger name as displayed in logs
taskName: PChar; // will be valuated with the current task name (for multitask applications)
taskProgress: PCardinal): Integer; cdecl; external CFTAPI_API_LIB name '?CFTAPI_createArchive@@YAHPAD000PAK@Z'; // will be valuated with the current task progress (for multitask applications)
// create an update file,
{CFTAPI_API} function CFTAPI_createUpdateFile(archivePath: PChar; // input archive file
gcfPath: PChar; // input gcf or ncf file
commonName: PChar; // input ncf common sub folder name or NULL
outputPath: PChar; // output folder
loggerName: PChar; // logger name as displayed in logs
taskName: PChar; // will be valuated with the current task name (for multitask applications)
taskProgress: PCardinal; // will be valuated with the current task progress (for multitask applications)
pleaseStop: PInteger; // pointer to an int to be set to 1 in order to ask the task to stop (for multitask applications)
securedUpdates: PInteger): Integer; cdecl; external CFTAPI_API_LIB name '?CFTAPI_createUpdateFile@@YAHPAD00000PAKPAHH@Z'; // set true to serialize GCF header after each update (slow)
// apply an update file,
{CFTAPI_API} function CFTAPI_applyUpdate(updatePath: PChar; // input update file
gcfPath: PChar; // gcf or ncf file to be updated
commonName: PChar; // input ncf common sub folder name or NULL
decryptionKey: PChar; // gcf/ncf decryption key if available and required or NULL
loggerName: PChar; // logger name as displayed in logs
taskName: PChar; // will be valuated with the current task name (for multitask applications)
taskProgress: PCardinal; // will be valuated with the current task progress (for multitask applications)
pleaseStop: PInteger; // pointer to an int to be set to 1 in order to ask the task to stop (for multitask applications)
securedUpdates: PInteger): Integer; cdecl; external CFTAPI_API_LIB name '?CFTAPI_applyUpdate@@YAHPAD00000PAKPAHH@Z'; // set true to serialize GCF header after each update (slow)
implementation
begin
end.
- $t@t!c_V()1D
- Разработчик
- Сообщения: 2639
- Зарегистрирован: 06.12.2007
- Благодарил (а): 10 раз
- Поблагодарили: 29 раз
Ну так что, работает? Если да, то принимай мои поздравления :) .
Another guy on them internets
Уважайте команду CSMania.RU - задавайте вопросы правильно!
Уважайте команду CSMania.RU - задавайте вопросы правильно!
-
- Разработчик
- Сообщения: 910
- Зарегистрирован: 09.01.2009
- Откуда: Переезжаю в /dev/null
- Благодарил (а): 7 раз
- Поблагодарили: 65 раз
- Контактная информация:
Начал разработку прграммы Games Manager, пришедшей на замену Client Cache Manager. Уже сделал передачу данных между прогой и сервером и ещё кое-что. Сейчас делаю отображение списка игр (почти как на сайте). Отсюда вопрос - как хотелось бы вам видеть список игр. Кодю я на своём любимом Delphi, и пока-что остановился на компоненте ListBox с добавленными иконками игр. Однако, мне ккажется выглядит немного убого. У кого-нибудь есть идеи как создать удобный список с картинками? Или не список... Кстати могу в приват скинуть линк на тестирование, при условии что вы будете отписывать обо всех багах.
Ах да, ещё кое-что - какие иконки лучше юзать? По размеру: 16х16/32х32/48х48 По содержанию: нагугленные, иконки, взятые из ярлыков создаваемых Steam или те, что висят на http://steampowered.com/ (которые 45 на сколько-то там)
Ах да, ещё кое-что - какие иконки лучше юзать? По размеру: 16х16/32х32/48х48 По содержанию: нагугленные, иконки, взятые из ярлыков создаваемых Steam или те, что висят на http://steampowered.com/ (которые 45 на сколько-то там)
- Vit_amiN
- Супермодератор
- Сообщения: 2509
- Зарегистрирован: 01.02.2007
- Откуда: Over Old Hills
- Благодарил (а): 15 раз
- Поблагодарили: 91 раз
16*16, стимовские.MOZGIII писал(а):По размеру: 16х16/32х32/48х48 По содержанию: нагугленные, иконки, взятые из ярлыков создаваемых Steam или те, что висят на http://steampowered.com/ (которые 45 на сколько-то там)
- $t@t!c_V()1D
- Разработчик
- Сообщения: 2639
- Зарегистрирован: 06.12.2007
- Благодарил (а): 10 раз
- Поблагодарили: 29 раз
И да, раз уж ты на Delphi кодишь (на меня не смотри %) ), то не лучше ль тебе пересесть на ListView co стилем LVS_REPORT ?
Добавлено спустя 3 минуты 19 секунд:
Добавлено спустя 3 минуты 19 секунд:
А много весит? Если не больше 3-х Мб, то давай ;) .MOZGIII писал(а):Кстати могу в приват скинуть линк на тестирование, при условии что вы будете отписывать обо всех багах.
Another guy on them internets
Уважайте команду CSMania.RU - задавайте вопросы правильно!
Уважайте команду CSMania.RU - задавайте вопросы правильно!
-
- Разработчик
- Сообщения: 910
- Зарегистрирован: 09.01.2009
- Откуда: Переезжаю в /dev/null
- Благодарил (а): 7 раз
- Поблагодарили: 65 раз
- Контактная информация:
LVS_REPORT - что за зверь?
edit: понял, с утра туплю :) Но там (в ListBox) ведь совсем нет загловков... К тому-же картинки там очень удобно сделаны.
edit: понял, с утра туплю :) Но там (в ListBox) ведь совсем нет загловков... К тому-же картинки там очень удобно сделаны.
- $t@t!c_V()1D
- Разработчик
- Сообщения: 2639
- Зарегистрирован: 06.12.2007
- Благодарил (а): 10 раз
- Поблагодарили: 29 раз
Слушай, а что должно быть быть вообще? Куда ложить exe-файл? (если есть определенное место) Что-то ничего, кроме Test Game, Left 4 Dead и Team Fortress 2, не показывает. Показывает просто 3 итемки на белом фоне интерфейса в стиле UCL.
Another guy on them internets
Уважайте команду CSMania.RU - задавайте вопросы правильно!
Уважайте команду CSMania.RU - задавайте вопросы правильно!
-
- Разработчик
- Сообщения: 910
- Зарегистрирован: 09.01.2009
- Откуда: Переезжаю в /dev/null
- Благодарил (а): 7 раз
- Поблагодарили: 65 раз
- Контактная информация:
Да, примерно это... Только теперь (с этой минуты) показывается также иконка Left4Dead... щя кину новую ссылку :)
Вот, кинул
Добавлено спустя 10 минут 53 секунды:
Вот, кинул
Добавлено спустя 10 минут 53 секунды:
Это что?$t@t!c_V()1D писал(а):UCL
- $t@t!c_V()1D
- Разработчик
- Сообщения: 2639
- Зарегистрирован: 06.12.2007
- Благодарил (а): 10 раз
- Поблагодарили: 29 раз
Вау. Прикольно...иконка меняет дело! А то без иконки-то как-то не то было... Но ты добавил иконку для L4D и мир стал добрее, и солнышко ярче, и программа, наверное, уже наполовину сделана %) .MOZGIII писал(а):показывается также иконка Left4Dead
Шучу, как ты, наверное, уже уяснил .
________________
O_O ИКОНКА! Она существует! И она скачивается? Или же она присутствует в проге? Или ещё какой-то способ?
Another guy on them internets
Уважайте команду CSMania.RU - задавайте вопросы правильно!
Уважайте команду CSMania.RU - задавайте вопросы правильно!
- x_000
- Полковник
- Сообщения: 4889
- Зарегистрирован: 25.02.2008
- Откуда: Deutsches Reich
- Благодарил (а): 6 раз
- Поблагодарили: 18 раз
Universal Content LauncherMOZGIII писал(а):Добавлено спустя 10 минут 53 секунды:Это что?$t@t!c_V()1D писал(а):UCL