2013-11-20 2 views
0

Может кто-нибудь объяснить, что делает cob32api?Ошибка загрузки ошибки COBOL batch - "cob32api" не найден

У меня есть задача переноса системы пакетного кобола с 32-битной Windows на 64-разрядную Linux. Большое количество программ вызывает «cob32api», который принадлежит Net Express. Linux-эквивалент Net Express - это Server Express, но я не совсем понимаю, что именно делает этот конкретный вызов. Кажется, что не требуются какие-либо параметры. К сожалению, также нет комментариев, объясняющих, для чего это необходимо.

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

Load error : file 'cob32api' 
error code: 173, pc=0, call=1, seg=0 173 
Called program file not found in drive/directory 

Может кто-нибудь помочь мне здесь?

Заранее спасибо.

+1

Это общая библиотека, используемая (я предполагаю?) Для взаимодействия с системой? Библиотека времени исполнения? На самом деле информации недостаточно. – Joe

+0

Кажется, это настройка «среды», а затем использование различных вызовов, поддерживаемых этой средой. Если вы не получили ответы от использования здесь, обратитесь в службу поддержки Micro Focus. Я уверен, что они с удовольствием расскажут вам, что нужно. –

ответ

2

ОК, я отследил коллегу, который работал над этим материалом и знал, что это значит. Вызов cob32api требуется, чтобы рассматриваемая программа cobol, а также любые подмодули, могли вызывать Windows API. Это объясняет, почему соответствующая библиотека (cob32api.dll) не имеет эквивалента Linux.

Простое решение моей проблемы: полностью удалить вызов.

Надеюсь, это поможет любому, кто сталкивается с подобной проблемой.

Спасибо за комментарии.

Дополнительная информация: Устранение вызова «cob32api» имеет последствия для упомянутых ниже модулей. Ther было несколько вызовов вида

CALL WINAPI "windows-function-name" ...

Это привело позже компиляции ошибок и, следовательно, его необходимо заменить.

+0

Вы могли бы также добавить предложение «продолжить исключение» или использовать CBL_GET_OS_INFO для определения во время выполнения, которое вы выполняете на платформе Unix. –

+0

К сожалению, он даже не дошел до времени выполнения ... моя проблема заключалась в том, чтобы создать систему в первую очередь. Кроме того, я немного старомоден и предпочитаю обрабатывать исключения, а не пропускать их. Но это только личное предпочтение ;-) –

+0

Согласен, но в этом случае использование CALL «cob32api» просто гарантирует, что символы, найденные в user32, gdi32, kernel32 и C runtime, видны программе COBOL. Поскольку среда выполнения Unix COBOL не имеет этой подпрограммы или имеет доступ к этой «Windows DLL», все, что произойдет в Unix, заключается в том, что фактический CALL для самого API Windows не даст вам лучшего понимания проблемы. –

Смежные вопросы