«Отсутствует» glew32.dll - находится в C: \ windows \ system32 \ glew32.dll, regsvr32 завершается ошибкой

1986
trycatch

У меня есть приложение, которое зависит от glew32.lib / .dll для запуска. .Lib находится в каталоге VS2005 SDK и прекрасно работает для компиляции. .Dll поместили (через cmd.exe, запущенный от имени администратора) в C: \ windows \ system32.

Когда я пытаюсь запустить приложение, оно говорит мне, что glew32.dll не на компьютере.

Я попытался зарегистрировать dll через regsvr32.exe, который завершается с помощью следующего сообщения:

Модуль "glew32.dll" не удалось загрузить. Убедитесь, что двоичный файл хранится по указанному пути, или отладьте его, чтобы проверить наличие проблем с двоичными или зависимыми файлами .DLL. Указанный модуль не может быть найден.

Я ударил его с DependencyWalker, и это только прямая зависимость является opengl32.dll. opengl32.dll указан как отсутствующий две зависимости (ну, зависимости зависимостей зависимостей зависимостей) - GPSVC.dll и IESHIMS.dll ... оба существуют, GPSVC.dll находится в system32, IESHIMS.dll находится в ../winsxs / x86_microsoft-windows-ie-ieshims- [hex (guid?)]

Я пошел дальше и скопировал IESHIMS.dll в system32, но безрезультатно. Это все еще не будет сотрудничать.

Мысли (кроме использования linux, где ldconfig просто работает ..;)?

1

1 ответ на вопрос

0
jdigital

Хорошим инструментом для отслеживания подобных проблем является Sysinternals ProcMon (или более старый SysInternals FileMon, который доступен на некоторых зеркальных сайтах и ​​которым проще пользоваться). С правильными параметрами фильтрации вы сможете увидеть, какие библиотеки DLL пытается загрузить Windows (и откуда).