powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Параметр фукции, как правильно?
4 сообщений из 4, страница 1 из 1
Параметр фукции, как правильно?
    #32990155
emb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго дня, господа программисты!

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
oracle xml sdk for C++
Обьявления в h-файле:
===================================================
/* DATATYPE encoding - a particular supported encoding
    The following kinds of encodings (or encoding names) are supported:
    "data_encoding", "default_input_encoding", "input_encoding" - overwrites
    the previous one, "error_language" - gets overwritten by the language of
    the error handler, if any
*/
    typedef struct encoding {
      oratext *encname;
      oratext *encvalue;
    } encoding;

/* DATATYPE encodings - Array of encodings
    It defines an array of encodings
*/
    typedef struct encodings {
      unsigned  num;
      encoding *enc;
    } encodings;
......

CXmlCtx( oratext* name, ErrorHandler* errh_ptr = NULL,
             MemAllocator* mem_ptr = NULL, encodings* encs_ptr = NULL)
=========================================================

Пытаюсь создать и передать в функцию параметр encs_ptr таким макаром:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
...
encoding  enc;
encodings encode;
enc.encname = (oratext*)"data_encoding";
enc.encvalue = (oratext*)"WINDOWS-1251";

encode.enc = &enc;
encode.num =  1 ; //пробовал и 0 и 1, в доке о нем ничего нет

CXmlCtx((oratext*)"orasax", NULL, NULL, &encode);
...

При таком вызове фунция возвращает ошибку.
Меня смущает следующая фраза в h-файле:
DATATYPE encodings - Array of encodings
It defines an array of encodings

Здесь говориться о массиве.
Как мне правильно реализовать передачу этого параметра?
...
Рейтинг: 0 / 0
Параметр фукции, как правильно?
    #32990530
Фотография Lelikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По логике все верно, но неясно:
1) Что за ошибка?
2) oratext* это эквивалент char* или может wchar_t*

________________________________________________________
Глюк - это высокоорганизованная система не поддающихся определению частиц
...
Рейтинг: 0 / 0
Параметр фукции, как правильно?
    #32990627
emb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот объявление oratext в h-файле
#define oratext unsigned char
...
Рейтинг: 0 / 0
Параметр фукции, как правильно?
    #32990691
emb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На самом деле это не функция а конструктор объекта, я сначала не стал
уточнять, что б не заморачиваться
вызывается так


XmlCtxNS::CXmlCtx* ctxp;
try
{
ctxp = new XmlCtxNS::CXmlCtx((oratext*)"orasax", NULL, NULL, &encode);
//ctxp = new ::XmlCtxNS::CXmlCtx();
}
catch (XmlException& e)
{ unsigned ecode = e.getCode();
_tprintf( "Failed to initialize XML context, error %u\n", ecode);
return ecode;
}

со сборкой проекта все нормально.
ошибка вознгикает при вызове данного конструктора,
и все дело как раз
в последнем параметре, который отвечает за кодировку XML парсера,
т.к. кроме этого конструктора, существует еще конструктор по умолчанию
ctxp = new XmlCtxNS::CXmlCtx();
при таком вызове все работает нормально, но тогда я теряю возможность смены кодировки
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Параметр фукции, как правильно?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]