Access violation reading location

Есть dll, доступа к исходному коду у меня нет, идет в составе sdk к прибору.
На одном компьютере программа, использующая эту dll, нормально отрабатывает, на другом - вылетает с unhandled exception в этой dll: Access violation reading location.
Отличий в установленных c++ runtime libraries нет, брандмауэр отключен и там и там, Dependency Walker показывает, что необходимые библиотеки присутствуют

В какую сторону думать, чтобы на втором компьютере перестало вылетать?

P.S. для тех, кто в комментариях не поверил, что есть только dll - единственная работа с этой библиотекой представляет собой:

  1. подкинуть ее в папку с программой
  2. в файле конфигурации формата .ini прописать название этой либы

Ответы (1 шт):

Автор решения: Chorkov
  1. Ошибки работы с памятью, могут приводить к падению в разных местах, в т.ч. в сторонних dll. Используйте _CrtCheckMemory, AddressSanitizer ... Попробуйте написать минимальное приложение вызывающее эту DLL, и имеющее разное поведение на машинах.

  2. проверить документацию на эту dll. Проверить все требования к вызову функций этой dll. Записать в логи все данные поступающие на вход этой DLL на обоих машинах, потом сравнить. Возможно, ошибка не на стороне dll.

  3. проверить к чему программа обращается (файлы, реестр). Возможно, неверно написана обработка случая отсутствия какого-то файла с данными.

  4. возможно, неверно написана обработка случая отсутствия какой-то динамически подключаемой библиотеки (в т.ч. COM). Запустить процесс под отладчиком, на машине где работает, составить список реально загружаемых библиотек.

  5. возможно, DLL содержит неопределенное поведение. Туи без исходников - никак.

→ Ссылка