Southmountain Ответов: 1

Название компании не отображается в приложении visual C++/MFC SDI


Я использовал Visual Studio 2017 enterprise AppWizard для быстрого завершения SDI-приложения.
Я успешно скомпилировал его, и он работает хорошо.

но если я посмотрю на атрибуты этого исполняемого файла, щелкнув его правой кнопкой мыши->Property->select details tab, я не увижу отображаемого атрибута CompanyName. не уверен, что это сделано специально.

как я могу отобразить название компании в свойстве исполняемого файла?

Миллион раз спасибо!

Что я уже пробовал:

вот VS_VERSION_INFO, определенный в файле ресурсов:

VS_VERSION_INFO VERSIONINFO
 FILEVERSION 1,0,0,1
 PRODUCTVERSION 1,0,0,1
 FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
 FILEFLAGS 0x1L
#else
 FILEFLAGS 0x0L
#endif
 FILEOS 0x40004L
 FILETYPE 0x1L
 FILESUBTYPE 0x0L
BEGIN
    BLOCK "StringFileInfo"
    BEGIN
        BLOCK "040904b0"
        BEGIN
            VALUE "CompanyName", "TODO: <Company name>"
            VALUE "FileDescription", "MFCApplication1"
            VALUE "FileVersion", "1.0.0.1"
            VALUE "InternalName", "MFCApplication1.exe"
            VALUE "LegalCopyright", "TODO: (c) <Company name>.  All rights reserved."
            VALUE "OriginalFilename", "MFCApplication1.exe"
            VALUE "ProductName", "TODO: <Product name>"
            VALUE "ProductVersion", "1.0.0.1"
        END
    END
    BLOCK "VarFileInfo"
    BEGIN
        VALUE "Translation", 0x409, 1200
    END
END

Rick York

Вот как выглядит одна из моих программ :

VS_VERSION_INFO VERSIONINFO
Необязательный параметр 1,0,0,1
PRODUCTVERSION 1,0,0,1
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#еще
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
Тип файла 0x1L
FILESUBTYPE 0x0L
НАЧАТЬ
Блок "StringFileInfo"
НАЧАТЬ
Блок "040904e4"
НАЧАТЬ
Значение "название организации", "РБС общества"
Значение "FileDescription", "Test Backup"
Значение "ProcessFiles", "1.0.0.1"
Значение "InternalName", "TestBackup"
Значение "LegalCopyright", "(c) RBS, Limited. Все права защищены."
Значение "OriginalFilename", "TestBackup.exe"
Значение "ProductName", "Test Backup"
Значение "ProductVersion", "1.0.0.1"
КОНЕЦ
КОНЕЦ
Блок "VarFileInfo"
НАЧАТЬ
Значение "перевод", 0x409, 1252
КОНЕЦ
КОНЕЦ

В файле ресурсов также есть это :

ЯЗЫК LANG_ENGLISH, SUBLANG_ENGLISH_US

1252 - это настройка кодовой страницы. Название компании (Мое) отображается в проводнике. Моя инсталляция-американская английская. Языковые настройки могут иметь какое-то отношение к этому.

KarstenK

@ Rick: публикуйте ответы как ответы, чтобы закрыть вопросы и ответы.

Rick York

Это был не ответ. Это было наблюдение.

1 Ответов

Рейтинг:
7

Richard MacCutchan

Это проблема Windows, а не Visual Studio. Я только что протестировал, и Windows отображает только те свойства, которые вы видите, хотя в таблице версий может быть много других. Я подтвердил наличие других свойств с помощью программы, которая перечисляет все ресурсы в исполняемом файле.


KarstenK

часто возникает проблема некоторых битовых флагов, как в "переводе".

Richard MacCutchan

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

Rick York

Из информации о версии в моем комментарии выше, страница сведений листа свойств показывает эти элементы :

Необязательный параметр 1,0,0,1
Значение "CompanyName", "название компании"
Значение "FileDescription", "описание файла"
Значение "LegalCopyright", "Legal Copyright"
Значение "ProductName", "Product Name"
Значение "ProductVersion", "версия продукта"
Значение "OriginalFilename", "исходное имя файла"

вместе с языком из поля "перевод".

Richard MacCutchan

Я просмотрел несколько исполняемых файлов, включая собственные продукты Microsoft, и ни один из них не показывает поле CompanyName. Используете ли вы для их просмотра что-то другое, кроме Проводника Windows?

Richard MacCutchan

Я просто создал простое приложение и добавил сведения о ресурсах из вашего примера выше (точно так, как вы их показываете). Когда я отобразил их в диалоговом окне свойств вот что я получил:

FileDescription	Test Backup
Type		Application
File version	1.0.0.1
ProductName	Test Backup
ProductVersion	1.0.0.1
Copyright	(c) RBS, Limited.  All rights reserved.
Size		56.0 KB
Date modified	17/08/2020 08:55
Language	English (United States)
OriginalFilename	TestBackup.exe

Так что, возможно, это версия для Windows; я нахожусь на Windows 10.

Rick York

Вы совершенно правы. Название компании не появляется. Я по ошибке включил его в свою копию и вставку.

Я обнаружил кое-что интересное в этом эксперименте. Я все еще использую старую программу FileManager. Microsoft сделала его открытым исходным кодом, поэтому я скачал и построил его для Win64, и он все еще работает довольно хорошо. Ему не хватает некоторых вещей оболочки, которые есть у исследователя, и это неудивительно. Во всяком случае, я хотел сказать, что страница сведений и, похоже, весь диалог свойств встроены в библиотеку оболочки, потому что один и тот же диалог появляется в файловом менеджере и Проводнике.

Richard MacCutchan

Есть на что посмотреть, если мне станет скучно.

Southmountain

спасибо вам всем за ваше время! теперь я уверен, что это не моя проблема.

Richard MacCutchan

Добро пожаловать. Это был интересный вопрос.