для отладки трюк. Увидимся в "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?
(Я нашел одно решение, поэтому я хотел бы поделиться подробностями ниже; см. Мой собственный ответ.Не удалось сделать это с помощью флажка, так как старый веб-браузер на рабочем месте был очень глючным ...)