Я проверил в своей версии dll файл x264, что открытая функция называется «x264_encoder_open_130», а 130 - конкретный номер сборки x264, который я использую. Я строю с помощью minGW на окнах и ссылаюсь на него, поэтому моя программа потерпит крах, если я попытаюсь использовать новую dll .. есть ли способ обойти это?libx264.dll предоставляет функцию x264_encoder_open_130, shouldnt это x264_encoder_open?
1
A
ответ
1
Нет, это не должно быть x264_encoder_open
. Для обеспечения того, чтобы бинарный файл более высокого уровня был создан против соответствующей версии DLL зависимости, это является мерой, иначе они не соединяются друг с другом из-за несоответствия имени экспорта.
Работать с этим легко - если вы обновите x264, перестройте приложение и обновите библиотеку.
Или, если вы хотите, чтобы ваше приложение можно было обновить без перекомпоновки, оберните x264 в тонкую оболочку, вы обновите его вместе с самим x264, чтобы ссылка приложения верхнего уровня на оболочку не изменила внешний интерфейс с обновлением.