===[ Программизм / Windows ]=== #post-id: 7864-20-05 #original-date: 5.02.2022 Sat #original-time: 8:05 PM #original-day: 7864 #original-host: WinXP Home SP3 (Build 2600) Заметила странность с DLL, собранными FreeBasic, в Windows 95. Допустим, у нас есть библиотека на FB, есть программа на VB6, которая её использует. Запускаем программу, она грузит библиотеку, всё хорошо. Теперь делаем ActiveX DLL на VB6, которая использует библиотеку, регистрируем через RegSvr32 в Windows 95. RegSvr32 грузит библиотеку, та грузит свои зависимости, в том числе FB библиотеку, а потом RegSvr32 получает от LoadLibraryEx() ошибку 0x45a. Даже если просто сказать RegSvr32 регистрировать FB библиотеку, то будет та же ошибка. Не понимаю, что происходит. В Windows 98 работает без проблем. #upd(13.02.2022 - 7:54 PM): Оказалось, что библиотека не грузится через LoadLibrary() и LoadLibraryEx(). Если она прилинкована через таблицу импортов к екзешнику, то загрузка происходит успешно. Но! Если библиотека прилинкована к другой библиотеке, которая грузится через LoadLibrary() и LoadLibraryEx(), то загрузка тоже заканчивается неудачей. В процессе исследований выяснилось, что проблема наблюдается так же в Windows 95 OSR2. Так же выяснилось, что без FB рантайма ошибка исчезает. Судя по всему, проблема в рантайме, но что это за проблема – БП. Исключений не наблюдается, DllMain() возвращает 1 etc.