Приложение Delphi вызывает приложение cobol -> ошибка - PullRequest
2 голосов
/ 10 декабря 2008

Нам нужно получить данные из старой системы учета. Мы получили dll, который дает нам доступ к нужным нам данным. Он включает в себя библиотеку типов, которую мы импортировали.

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

RTS с динамической привязкой
DLL времени выполнения 'OOPS', версия 3.1, точка входа упс не зарегистрировано в реестре, не найдено или несовместимо с требованиями динамически связанной программы COBOL. Динамическое связывание RTS требует: DLL времени выполнения 'OOLSM', по крайней мере, версия 3.1

Кто-нибудь может предоставить некоторую полезную информацию по этому вопросу?

Должны ли мы иметь какое-то время выполнения cobol в нашем каталоге? Или в пути? Или зарегистрирован в реестре?

Спасибо
-Vegar

Обновление:
Настройка system% path% для включения пути к системе бухгалтерского учета, кажется, делает свое дело. Включение его в качестве пользовательской переменной по какой-то причине не дало того же эффекта.

Ответы [ 3 ]

2 голосов
/ 10 декабря 2008

Какой Кобол вы используете? Я делал это в течение года с Microfocus NetExpress 3.1, и все работает просто отлично. Я пишу COBOL DLL для доступа к файлам данных COBOL, а также пишу Delphi DLL для добавления новых функций к старым системам COBOL.

И да, я использую для установки пути выполнения, то есть переменную среды с именем COBDIR, есть и другие, но обычно достаточно% PATH% и% COBDIR%.

Если вы дадите больше подробностей о том, какой компилятор COBOL вы используете, и как называется интерфейс dll, который вы вызываете, я легко вам помогу.

И, возможно, «Зависимый ходок» поможет вам определить, какие файлы времени выполнения отсутствуют, если это так. http://www.dependencywalker.com/

1 голос
/ 10 декабря 2008

Если он работает из каталога бухгалтерского приложения, но не из другого, первое, что я попробую, - добавить этот каталог в ваш путь.

0 голосов
/ 10 декабря 2008

Если он уже не загружен в память, Windows ищет DLL, которые программа запрашивает в каждом месте, указанном в переменной среды PATH, а также в каталоге, в котором находится приложение.

...