Форум программистов, компьютерный форум CyberForum.ru

Из контейнера (напр access-овая форма) передать в ActiveX control двумерный массив - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ через что быстрее подключаться к sql servery? http://www.cyberforum.ru/cpp-beginners/thread472467.html
Вопрос вот в чем через что будет быстрее подключение и работа с sql servery, через ADo или есчть еще что-нибудь в этом роде(типа чисто для sql servera).
C++ Не могу откомпилировать в TeXnicCenter Помогите!Поставила новую программу TeXnicCenter,у которой интерфейс аналогичен С++.А откомпилировать ее не могу. natashich@mail.ru или аська 151892626 http://www.cyberforum.ru/cpp-beginners/thread472465.html
Надо передать данные в виде таблицы C++
Сделал некий ActiveX контрол в который надо передать данные в виде таблицы. То есть передать-то я их могу в любом виде но они должны записаться в массив. Размеры массива заранее неизвестны. Как реализовать динамический массив? Ну или например мы передаем контролу количество строк и столбцов, там создается массив заданных размеров а потом поэлементно заполняем его данными. Как всё это...
C++ Не обьявляется обьект класса TPrinter в BCB 5.0 ?
Пытаюсь обьявить экземпляр класса : TPrinter pp1 ; Транслятор ругается : Undefined symbol 'TPrinter'... Что за байда? Между прочим, по ихнему-же хелпу... Может хедер какой-то не обьявил ?
Visual C++ Как измененить цвет строки в CListCtrl? http://www.cyberforum.ru/cpp-beginners/thread472425.html
Можно ли в элементе управления класса CListCtrl изменить цвет текста одной строки (не всего текста, а именно строки)?
C++ Borland CBuider. Есть форма, на ней две кнопки... Borland CBuider. Есть форма, на ней две кнопки.Оработчики например такие: ... int i=1; ...Button1Clik(..) { while(i){....}; } ....Button2Clik(..) {i=0; подробнее

Показать сообщение отдельно
Vita
Сообщений: n/a
18.12.2008, 09:44     Из контейнера (напр access-овая форма) передать в ActiveX control двумерный массив
В интерфейсе
C++
1
    [id(1)] HRESULT GetData([out,retval] SAFEARRAY(BYTE) *psa);
В реализации
C++
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
27
28
29
30
// будет передан массив, описываемый в VB так:
// Dim arr() As Byte
// arr = pBinData.GetData
STDMETHODIMP CBinData::GetData(/*[out,retval]*/ SAFEARRAY* *psa)
{
    // TODO: Add your implementation code here
 
    // будет создан массив, описываемый в VB так:
    // Dim arr() As Byte
    // ReDim arr(0 To 3, 0 To 2)
 
    // ЗАМЕТИМ, что массивы в VB расположены не так, как в C|C++
    // C|C++: [0][0] [0][1] [0][2] ...
    // VB:    [0][0] [1][0] [2][0] ...
 
    SAFEARRAYBOUND rgsabound[2] = { {4,0}, {3,0} };
 
    // создаём массив байт (VT_UI1). Если использовать другие VT_, будут массивы других типов
    if( (*psa = ::SafeArrayCreate( VT_UI1, 2, rgsabound )) == NULL )
        retrurn E_OUTOFMEMORY;
 
    char* pss;
    if( FAILED(::SafeArrayAccessData(*psa, (void**)&pss)) )
        return E_ACCESSDENIED;
 
    // заполняешь массив pss так, как тебе надо
 
    ::SafeArrayUnaccessData(*psa);
    return S_OK;
}
 
Текущее время: 03:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru