Нам нужно получить данные из старой системы учета. Мы получили dll, который дает нам доступ к нужным нам данным. Он включает в себя библиотеку типов, которую мы импортировали.
Если мы запускаем наше тестовое приложение из той же директории, что и система учета, все работает нормально. Если мы попытаемся запустить наше приложение из другого каталога, мы получим следующую ошибку:
Динамически связанная
библиотека времени выполнения RTS 'OOPS', версия 3.1, точка входа упс, не записана в реестре, не найдена или несовместима с требованиями динамически связанной программы COBOL. Динамическое связывание RTS требует: DLL времени выполнения 'OOLSM', по крайней мере, версия 3.1
Кто-нибудь может предоставить полезную информацию по этому поводу?
Мы должны иметь какое-то время выполнения cobol в нашем каталоге? Или в пути? Или зарегистрирован в реестре?
Спасибо,
-Вегар
Обновления:
установка system% path% для включения пути к учетной системе, кажется, делает свое дело. Включение его в качестве пользовательской переменной по какой-то причине не имело такого же эффекта.
Если он работает из каталога приложения учета, но не из другого, первое, что я попробую, - это добавление этого каталога в ваш путь.
Какой кобол вы используете? Я делал это в течение года с Microfocus NetExpress 3.1, и все работает просто отлично. Я пишу COBOL DLL для доступа к файлам данных COBOL, а также пишу Delphi DLL для добавления новых функций к старым системам COBOL.
И да, я использую для установки пути выполнения, то есть переменную среды с именем COBDIR, есть и другие, но обычно достаточно% PATH% и% COBDIR%.
Если вы дадите больше подробностей о том, какой компилятор COBOL вы используете, и как называется интерфейс dll, который вы вызываете, я легко вам помогу.
И, возможно, «Зависимость Уокер» может помочь вам определить, какие файлы времени выполнения отсутствуют, если это так. http://www.dependencywalker.com/
Если он уже не загружен в память, Windows ищет библиотеки DLL, которые запрашивает программа в каждом месте, указанном в переменной среды PATH, а также в каталоге, в котором находится приложение.