Как получить информацию о версии DLL-файла в C ++

Algo 2 может не работать для всей строки. Вот пример такой строки «ABCDEFCBA».

Не то, что строка имеет «ABC» и «CBA» в качестве подстроки. Если вы измените исходную строку, это будет «ABCFEDCBA». и самая длинная совпадающая подстрока - это «ABC», которая не является палиндром.

Возможно, вам потребуется дополнительно проверить, является ли эта самая длинная совпадающая подстрока фактически палиндром, который имеет время работы O (n ^ 3).

13
задан Peter Mortensen 8 August 2012 в 08:57
поделиться

4 ответа

Спасибо за ответы.

Это работало на меня:

WCHAR fileName[_MAX_PATH];
DWORD size = GetModuleFileName(g_dllHandle, fileName, _MAX_PATH);
fileName[size] = NULL;
DWORD handle = 0;
size = GetFileVersionInfoSize(fileName, &handle);
BYTE* versionInfo = new BYTE[size];
if (!GetFileVersionInfo(fileName, handle, size, versionInfo))
{
    delete[] versionInfo;
    return;
}
// we have version information
UINT                len = 0;
VS_FIXEDFILEINFO*   vsfi = NULL;
VerQueryValue(versionInfo, L"\\", (void**)&vsfi, &len);
aVersion[0] = HIWORD(vsfi->dwFileVersionMS);
aVersion[1] = LOWORD(vsfi->dwFileVersionMS);
aVersion[2] = HIWORD(vsfi->dwFileVersionLS);
aVersion[3] = LOWORD(vsfi->dwFileVersionLS);
delete[] versionInfo;
23
ответ дан Patrick Cuff 8 August 2012 в 19:57
поделиться
  • 1
    Для любого использующего это - произведенный GIF всегда, кажется, включает overlayed ограничительную рамку - который isn' t идеал. Эта видимость doesn' t, кажется, настраиваются также. – AlanFoster 12 March 2014 в 04:36

Похож на Вас, должен получить доступ к ресурсу VS_VERSION_INFO; http://www.microsoft.com/msj/0498/c0498.aspx

3
ответ дан Henrik Hartz 8 August 2012 в 19:57
поделиться
  • 1
    О, это кажется хорошим! Почему isn' t то, что на документации, или никто не говорит о том нигде, благодарит, я протестирую ее – Matthieu Napoli 30 March 2010 в 20:31

Если Вы хотите программный доступ, см. Информация о версии в MSDN для API и структур данных, в которых Вы нуждаетесь.

9
ответ дан Paul Dixon 8 August 2012 в 19:57
поделиться
  • 1
    @AlanFoster я нашел обходное решение для проблемы наложения. Установите свою область обрезки и запишите случайный GIF (будет спам, потому что наложение будет присутствовать)-> Скройте наложение жнеца и запишите другой GIF использование клавиши Print Screen (prtscrn для запуска и prtscrn снова для остановки). Это запишет наложение свободный gif использование обрезки, сходящей с последнего зарегистрированного GIF. Первый шаг необходим, потому что область обрезки будет только установлена при записи gif непосредственно (использующий клавишу Enter). – George Kendros 25 April 2014 в 00:23

Это должно быть там в свойствах (вкладка версии) при открытии его в Windows Explorer

0
ответ дан frankodwyer 8 August 2012 в 19:57
поделиться
  • 1
    Спасибо, это - точно подтверждение, которое я искал. У них действительно есть интерфейс c и I' m смотрящий на использование этого, но it' s намного менее мощный, чем what' s доступный в C++. I' m, также продвигая их выпустить для MinGW. – IndigoFire 19 March 2010 в 07:15
Другие вопросы по тегам:

Похожие вопросы: