для отладки трюк. Увидимся в "La Bonne Aubeeerge".

жен написать DLL, должен обеспечить простой сервис, который принимает:

В строке или байтовом массиве (эквивалент char *)IN целое число, эксплицирующее размер в символе *В эквиваленте буфера char * используется библиотекой для записи данных вIN размер доступного буфера char * для записиOUT эффективный записанный размер в буфер out char *

С точки зрения C, подпись должна выглядеть так:

void myService (char* inBuffer,  // as in string
                int   anInteger, // as in param
                char* outBuffer, // used as out buffer, but initalized by calling code
                int   outBufferSize, // the initaliaed size
                int   usedBufferSize // used as out param, the actually used size
);

Библиотека выбрана для кодирования в Ada по нескольким причинам (несколько пакетов Ada повторно используют, что мы не хотим ни кодировать снова, ни перепроектировать (наследие)). Таким образом, предполагается, что библиотека используется в проекте Java (и мы не хотим перекодировать со стороны Java службы, предоставляемые lib). (Основная причина этого заключается в том, что библиотека скрывает сложное преобразование типов Ada в JSON + библиотека протоколов.)

Библиотека также должна быть сопряжена с C или C ++ в будущем, поэтому основная идея заключается в том, чтобы полагаться на базовые типы.

Как можно одновременно взаимодействовать с C и Java?

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