Я столкнулся с проблемой, которая сводит меня с ума, надеюсь, кто-то сможет пролить свет на это. Как часть моего процесса сборки у меня есть отдельный .exe, который обновляет VersionInfo для файла. Я буквально использую это в более чем 20+ программах, но по какой-то причине в одной из них удаляется вся существующая информация о ресурсах из exe. Я на самом деле урезал его, и я могу получить точное поведение, просто позвонив:
if ((ResourceHandle = BeginUpdateResource(Target, FALSE)) != NULL)
{
EndUpdateResource(ResourceHandle, FALSE);
}
Я использую приведенное выше в качестве простого примера, но в моем случае я проверяю коды возврата, и все работает правильно. Если я запускаю тот же код для своих 20 других приложений, он не затрагивает их, но запускает его в этом, и он удаляет данные ресурса.
Я просмотрел файл .rc, удалил его фрагменты, перестроил его всеми возможными способами, и результат тот же. Я также могу загрузить его в DevStudio, и он не сообщает, что что-то повреждено и т. Д. Процесс сборки абсолютно одинаков для всех приложений (они создаются с помощью make-файлов, так что никакой магии там тоже не происходит).
Кто-нибудь еще испытывал подобное поведение? Похоже, что другие люди столкнулись с этим здесь .
Но пока я не нашел решения ...