Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

"Исправление ошибки отображения версии приложения после перехода с Borland RC на Windows SDK RC"

Delphi , Технологии , DDE

Для начала, давайте разберемся в вопросе и контексте задачи. Разработчик сталкивается со проблемой отображения информации о версии приложения после перехода с использования Borland Resource Compiler (RC) на Windows SDK Resource Compiler. При использовании Borland RC все работало корректно, но после смены на Windows SDK RC информация о версии перестала отображаться в свойствах файла в Explorer и не могла быть получена через WinAPI функцию GetFileVersionInfo. Однако, при помощи Resource Hacker было обнаружено, что ресурс с версией действительно присутствует в исполняемом файле.

Из контекста мы видим, что проблема была решена путем изменения первой строки .rc файла с VS_VERSION_INFO VERSIONINFO на 1 VERSIONINFO. Это позволило корректно обработать ресурс версии приложения при использовании Windows SDK Resource Compiler. Также было предложено добавить макрос для явного определения идентификатора VS_VERSION_INFO, если он не определен компилятором.

Теперь, давайте напишем статью на основе предоставленной информации:


Исправление ошибки отображения версии приложения после перехода с Borland RC на Windows SDK RC

Разработчикам программного обеспечения иногда приходится сталкиваться с различными трудностями при использовании разных инструментов и компиляторов. Одной из таких проблем является некорректное отображение информации о версии приложения после перехода с Borland Resource Compiler (RC) на Windows SDK Resource Compiler.

Проблема

Информация о версии, которая ранее корректно отображалась в свойствах файла в Explorer и была доступна через WinAPI функцию GetFileVersionInfo при использовании Borland RC, перестала быть видимой после смены на Windows SDK RC. Это происходило несмотря на то, что ресурс версии присутствовал в исполняемом файле, что подтверждалось проверкой с помощью Resource Hacker.

Исходный код .rc файла

Вот пример исходного кода .rc файла, который использовался для хранения информации о версии:

VS_VERSION_INFO VERSIONINFO
    FILEVERSION             1,0,0,0
    PRODUCTVERSION          1,0,0,0
BEGIN
    BLOCK "StringFileInfo"
    BEGIN
        BLOCK "040904b0"
        BEGIN
            VALUE "Comments",         "Company Soft\0"
            VALUE "CompanyName",      "Company2\0"
            // ... другие значения ...
        END
    END
    BLOCK "VarFileInfo"
    BEGIN
        VALUE "Translation", 0x0409,1200
    END
END

Решение проблемы

Проблема была решена путем изменения первой строки .rc файла. Вместо VS_VERSION_INFO VERSIONINFO был использован синтаксис:

1 VERSIONINFO

Это изменение позволило корректно обработать ресурс версии приложения при использовании Windows SDK Resource Compiler.

Дополнительные рекомендации

Также было предложено добавить макрос для определения VS_VERSION_INFO, если он не определен в компиляторе:

#ifndef VS_VERSION_INFO
#define VS_VERSION_INFO 1
#endif

Это может быть необходимо, так как некоторые компиляторы ожидают явного определения идентификатора.

Заключение

При переходе на использование Windows SDK Resource Compiler важно учитывать различия в обработке ресурсов по сравнению с Borland RC. В данном случае, простое изменение синтаксиса .rc файла помогло устранить проблему отображения информации о версии приложения.


Эта статья предназначена для разработчиков, которые используют Delphi и Pascal, и сталкиваются с аналогичными проблемами при работе с ресурсами приложений. Мы надеемся, что предоставленная информация поможет вам быстро решить подобные задачи.

Создано по материалам из источника по ссылке.

Разработчик столкнулся со сложностью в отображении информации о версии приложения после переключения с Borland Resource Compiler на Windows SDK Resource Compiler, и проблема была решена через изменения в файле ресурсов.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: DDE ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 11:50:51/0.0058119297027588/1