Это не должно быть сложно в среде IBM Z / OS с поддержкой LE.
Захватить логический результат, используя
COBOL ВОЗВРАЩЕНИЕ ВЫЗОВА
форма заявления CALL. Строковые аргументы передаются так же, как и любые другие аргументы в выражении COBOL CALL.
Единственное, что следует опасаться, это то, что C использует строки с нулевым символом в конце, тогда как COBOL, как правило, этого не делает. Вы должны рассмотреть
как обрабатывать строки с нулевым символом в конце в
COBOL.
Посмотрите на: Использование DLL-библиотек COBOL с программами на C / C ++ Это дает действительно простой пример, показывающий вызов функции C ++, возвращающей указатель на функцию.
EDIT
Возможно, я пропустил часть вашего вопроса ... Когда ваша программа на COBOL редактируется по ссылкам, вам нужно предоставить файл DLL IMPORT, чтобы он мог быть связан. См связывание DLL .
РЕДАКТИРОВАТЬ 2
Исходя из ваших комментариев, я так понимаю, вы запускаете свое приложение на коробке Z / OS. Visual Studio - это продукт для ПК, поэтому я предполагаю, что вы разрабатываете там свой код, но развертываете его в Z / OS? Чтобы программа COBOL распознала вашу DLL, вам нужно создать «побочный файл» из вашей программы на C, когда она будет скомпилирована. Этот «побочный файл» содержит структуры DLL, необходимые компоновщику при связывании программы COBOL. Вы должны быть в состоянии понять процесс по ссылкам, указанным выше.