Ваша проблема, вероятно, является результатом "код написан на C ++". Связи ABI для C ++ практически не определены каким-либо стандартом и общеизвестно изменяемы от компилятора к компилятору. Я подозреваю, что VS пытается сказать вам, что ABI снова изменился, и в результате он не может напрямую связаться с библиотекой.
Эта проблема часто усугубляется желанием реализовать объекты C ++ в DLL, но, к счастью, у вас нет такой проблемы здесь.
Один из подходов к решению, которое должно работать, состоит в том, чтобы создать оболочку для опубликованного API EXTERNALLIB с C-callable адаптером и связать все это в DLL. Создайте скин с более старой версией VS (в худшем случае бесплатную версию все еще можно найти). Убедитесь, что доступны только функции extern "C"
. Особенно убедитесь, что никакие глобальные объекты не выставляются из DLL (хотя они могут существовать в вашей оболочке).
Лучший ответ - вернуться к поставщику EXTERNALLIB и вежливо сообщить о сбое связи с текущей VS как ошибку и запросить перестроенную версию.