В основном, когда наше программное обеспечение работает под Windows 7
, оно работает: вызов на LoadLibrary()
успешен, и жизнь хороша.
Но когда то же программное обеспечение запускается на коробке XP
(последние исправления), вызов LoadLibrary
завершается неудачно, возвращая NULL
с кодом ошибки, который задает module not found
.
Я пытался заставить его использовать UNICODE
версию LoadLibraryW
вместо версии LoadLibraryA
для нашего приложения.
Я попытался убедиться, что папки установки отображаются через букву локального диска.
И я проверил, что путь действительно доступен с исполняющей машины (т. Е. Сгенерированная ошибка указывает, какой путь он пытается загрузить, и я использую эту строку для фактического поиска файла).
Странно то, что этот код работает правильно при компиляции на VS 2008 SP2
.
Он также отлично работает, когда клиентский компьютер Windows 7
.
Сбой только в том случае, если он скомпилирован + связан с помощью VS 2010
и запущен на клиенте XP
.
Я в полной растерянности относительно того, что в мире может пойти не так.
Чтобы добавить странности в рагу:
Если я включу свой XP
VM
на своем компьютере для разработки и запусту этот код в отладочной сборке VS2010
в XP
,это работает правильно!
На самом деле, под моим XP
VM
стандартная (релизная) сборка также работает правильно !!!
Это просто при запуске из настоящего XP
окна, что он выходит из строя (я уже пробовал пару XP
машин, оба полностью исправлены).
Есть мысли?!
У меня заканчиваются заслуживающие доверия идеи.:(