узнать тип сборки debug or release
От: sergey2b ЮАР  
Дата: 20.11.24 14:31
Оценка:
несколько приложений собираються VS 2020

подскажите пожалуйста есть ли хороший способ определить являеться ли скомпилированные dll or exe — debug or release версией (доступа к файлам проектов нет)
Re: узнать тип сборки debug or release
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 20.11.24 14:41
Оценка: 12 (2)
Здравствуйте, sergey2b, Вы писали:

S>подскажите пожалуйста есть ли хороший способ определить являеться ли скомпилированные dll or exe — debug or release версией (доступа к файлам проектов нет)


Например, посмотреть, с какой CRT собраны: msvcp140d.dll или msvcp140.dll
Наверное, со статическим рантаймом как-то по-другому.
Re: узнать тип сборки debug or release
От: qaz77  
Дата: 20.11.24 15:16
Оценка: 9 (1) +1
Здравствуйте, sergey2b, Вы писали:

S>несколько приложений собираються VS 2020


S>подскажите пожалуйста есть ли хороший способ определить являеться ли скомпилированные dll or exe — debug or release версией (доступа к файлам проектов нет)


В структуре VERSIONINFO есть флажок VS_FF_DEBUG.
Но ставит ли его студия автоматически... Скорее всего нет.

В принципе могут быть какие-то половинчатые конфигурации, не обязательно debug и release.
Например, с включенной оптимизацией, но и с включенной поддержкой pdb.

Если CRT в DLL, то, как правильно уже сказали, определять по наличию буковки "d" в имени CRT DLL.
Re[2]: узнать тип сборки debug or release
От: qaz77  
Дата: 20.11.24 15:37
Оценка:
S>Здравствуйте, sergey2b, Вы писали:
S>подскажите пожалуйста есть ли хороший способ определить являеться ли скомпилированные dll or exe — debug or release версией (доступа к файлам проектов нет)

Q>В структуре VERSIONINFO есть флажок VS_FF_DEBUG.

Q>Но ставит ли его студия автоматически... Скорее всего нет.

Студийный appwizard такой код генерирует в .rc:
#ifdef _DEBUG
 FILEFLAGS 0x1L
#else
 FILEFLAGS 0x0L
#endif

Так что, такой способ может и подойдет.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.