AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.09.2010, 12:13   #7  
Maximin is offline
Maximin
NavAx
NavAx Club
 
412 / 346 (12) ++++++
Регистрация: 09.10.2002
Адрес: Москва
Подкинули задачку, как выяснилось, она решаема. Написано это все для 3ки, для 4ки и 2009 есть смысл использовать класс BinData - там все проще.
Так вот. Неважно, в каком виде мы помещаем в массив значения, то ли Types::Enum, то ли Types::Integer.
Главное - как мы потом запихнем это в правильно инициализированный Variant.
CreateFromArray - не подходит, т.к. проблема на самом деле в том, что createFromArray всегда формирует SafeArray из VT_I4(если мы передаем числовые типы, если строки - то будет VT_BSTR), в результате чего, сервер получает значения "расширенные" 3мя нулями и у него сносит крышу (пропадают спецсимволы и вообще, творится армагеддон ). Надо брать метод safeArray, позволяющий указать тип получаемого SaleArray (а нам нужен, по сути, массив байт). Так и пишем:
X++:
    str         string = "+1&2+3&4";
    COMVariant  cv;
    Array       ar = new Array(Types::Enum); //или Types::Integer
    int         i;
    for (i=1;i<strlen(string);i++)
    {
        ar.value(i, char2num(string, i));
    }
    cv = new ComVariant(COMVariantInOut::Out, COMVariantType::VT_SAFEARRAY);
    cv.safeArray(ar, COMVariantType::VT_I1);
На выходе получим то, что нужно - массив двоичных однобайтовых данных, упакованный в SafeArray.
__________________
Жизнь прекрасна! Если, конечно, правильно подобрать антидепрессанты...

Последний раз редактировалось Maximin; 20.09.2010 в 13:07.
За это сообщение автора поблагодарили: Hyper (1).
Теги
activex, com-объект, internet explorer

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Microsoft Dynamics AX 2009 White Paper: Integrating a Third Party Version Control System into Microsoft Dynamics AX 2009 Vadik DAX: База знаний и проекты 0 05.02.2010 10:27
Microsoft Dynamics AX 2009 White Paper: Using the Version Control Integration with Microsoft Team Foundation Server Vadik DAX: База знаний и проекты 0 09.07.2009 13:17
axStart: Microsoft Dynamics AX 2009 Hot Topics Web Seminar Series Blog bot DAX Blogs 0 06.08.2008 12:05
axStart: Microsoft Dynamics AX 2009 White Paper: Team Foundation Server Version Control Setup Blog bot DAX Blogs 0 27.07.2008 13:06
Consuming "CustomerService" Web Service Blog bot DAX Blogs 0 25.01.2008 15:10

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 17:47.