Перейти к публикации

User-сервисы под ядро Тимцентра. Проблема


Рекомендованные сообщения

Добрый день!

проблема с пользовательскими сервисами. Как известно они позволяют со стороны Java вызывать код написанный на с\с++ под ядро

так вот возвращать таким пользовательским сервисом - строки, теги объектов. НО НЕПОЛУЧАЕТСЯ возвращать массивы

делаю так

сперва регистрация сервиса

header_nargs = 2;

header_retValueType;

header_inputArgTypes = (int *)MEM_alloc ( header_nargs * sizeof (int) );

header_inputArgTypes[0] = USERARG_STRING_TYPE;//тег ревизии

header_inputArgTypes[1] = USERARG_STRING_TYPE;//сайт

header_retValueType = USERARG_TAG_TYPE + USERARG_ARRAY_TYPE;

USERSERVICE_register_method ("getDocNAPOALL", getDocNAPOALL_wrap, header_nargs,

header_inputArgTypes, header_retValueType );

MEM_free(header_inputArgTypes);

потом реализация

int getDocNAPOALL_wrap(void *retValue)

{

int ifail;

tag_t rev_tag=0;

char *uid=0;

char *site_name=0;

char tmpstr[1000]="";

ifail = USERARG_get_string_argument(&uid);

ITK__convert_uid_to_tag(uid,&rev_tag);

ifail = USERARG_get_string_argument(&site_name);

char* item_rev=0;

int n_docn_best=1;

tag_t *docn_best=(tag_t*)MEM_alloc(1*sizeof(tag_t));

//-------------------------------

//тут я получаю массив объектов docn_best

USERSERVICE_array_t arrayStruct;

ifail = USERSERVICE_return_tag_array (docn_best,n_docn_best,&arrayStruct);

(void*)retValue = arrayStruct.array;

}

код работает без ошибок!!

но в Java мне массив тегов не возвращается!

В чём ошибка?

Ссылка на сообщение
Поделиться на других сайтах


пример с массивом строк:

char *string[2];

//инициализация массива

//////////////////

//

ifail = USERSERVICE_return_string_array((const char **)string,2,(USERSERVICE_array_t *)pReturnValue);

у вас скорее всего не выполнено приведение типа.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




×
×
  • Создать...