Цитата Сообщение от captain cobalt
1. Если совместимость осталась, то линкеру не должно быть дела до minor номера?
2. Что если в данной версии совместимость нарушилась, а в следующей опять восстановилась?
3. Что если часть модуля осталась совместимой, а часть нет? Сигнатура для каждого символа модуля разруливает именно это.
1. чаще всего да, но если очень надо то можно указывать зависимость с точностью до минорной версии. например при минорном update могла добавиться новая функци, это совместимости не вредит (при правильном использовании конечно)
2. значит не судьба или указывать указывать список возможных версий при импорте
3. значит это новая версия и звать функции с неизменившимися сигнатурами скорее всего опасно. т.к. они могут иметь side effects

Цитата Сообщение от captain cobalt
Инициализация - это важно. Функцию инициализации модуля должен вызывать линкер.
инициализацию модуля я привел в качестве примера, что делать если сигнатура функции (т.е. распределение аргументов по регистрам) не поменялась, но поменялись значения кодов возврата, т.е. раньше 0 означал успех, а в новой версии - ошибку. линкер это проглотит, но программа работать не будет... можно придумать и другие варианты.

Цитата Сообщение от captain cobalt
Где может располагаться этот список? Есть два основных способа:
1. В программе. Программа сама делает LoadLibrary и сама добавляет элемент себе в список.
зачем список? почему не искать все файлы удовлетворяющие маске и лежащие в определенном месте (каталоге?)