Excel VBA не находит DLL-файл, запрограммированный мной

c #dll #registry

#c #dll #реестр

Вопрос:

в Excel-VBA я запрограммировал небольшой интерфейс планирования производства, который вызывает оболочку (dll, запрограммированную на C , Visual Studio 2022), которая, в свою очередь, вызывает Autonester-x64.dll (коммерческий решатель для оптимальной формы гнезд). На двух компьютерах с Windows 10 это работает нормально. На третьем компьютере, который используется в производстве, он не работает: (1) Программа excel VBA выдает ошибку «Файл не найден» (2) Если я попытаюсь зарегистрировать wrapper.dll , это вызывает следующую ошибку:

сообщение об ошибке от regsvr32

Конечно, в отношении (1) я тщательно проверил расположение файлов примерно 10 раз, так что это не может быть причиной. Затем я подумал, давайте избавимся от проблемы, зарегистрировав dll — но безуспешно. Это так глупо, но у меня больше нет идей, что я мог бы попытаться решить… Любая помощь приветствуется!

Комментарии:

1. Пожалуйста, отправьте сообщение об ошибке в виде форматированного текста, чтобы его могли использовать поисковые системы и видеть те, кто не может загружать изображения.

Ответ №1:

Это сообщение от загрузчика DLL Windows является бесполезным мусором. Я бы сначала проверил версию Office (x32 или x64).

Взгляните на класс DllManager VBA. Может быть, это поможет. Я использую его для загрузки DLL-файлов в Windows 10 из папки пользователя без какой-либо регистрации. Он также выполняет несколько базовых проверок и может выдать более полезное сообщение об ошибке.

Комментарии:

1. Я нашел проблему: путь к autonester.dll (вызванный wrapper.dll ), необходимо было включить в переменную среды path. Это решило это странное поведение.