Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Параметр фукции, как правильно? / 4 сообщений из 4, страница 1 из 1
31.03.2005, 09:49
    #32990155
emb
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
31.03.2005, 11:49
    #32990530
Lelikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Параметр фукции, как правильно?
По логике все верно, но неясно:
1) Что за ошибка?
2) oratext* это эквивалент char* или может wchar_t*

________________________________________________________
Глюк - это высокоорганизованная система не поддающихся определению частиц
...
Рейтинг: 0 / 0
31.03.2005, 12:16
    #32990627
emb
emb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Параметр фукции, как правильно?
Вот объявление oratext в h-файле
#define oratext unsigned char
...
Рейтинг: 0 / 0
31.03.2005, 12:34
    #32990691
emb
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
Форумы / C++ [игнор отключен] [закрыт для гостей] / Параметр фукции, как правильно? / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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