Форум программистов, компьютерный форум, киберфорум
C/C++
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C/C++ Форматы данных в ячейках Excel https://www.cyberforum.ru/ c-cpp/ thread929891.html
Здравствуйте! Подскажите пожалуйста, возможно ли сделать так, чтобы одновременно выполнялись 4 условия: 1) Формат текста в ячейках excel текстовый. 2) В ячейки вносятся числа типа double из программы написанной на Cpp Builder. 3) Excel показывает пользователю значения этих ячеек с округленной дробной частью по правилам математики до 3х знаков, если дробная часть есть. 4) При считывании...
C/C++ Cpp builder-Ole-Excel. WideString пишет в ячейку Excel минус перед нулем
Здравствуйте! Посмотрите пожалуйста: Когда аргумент val == 0, в ячейку Excel пишется "-0". Без WideString все нормально - в ячейку помещается нуль без знаков. Администратор форума говорил, что при вставке данных в ячейки Excel - WideString необходим. Формат ячеек Excel - текстовый. vVarCell = vVarCells.OlePropertyGet("Item", i,j); vVarCell.OlePropertySet("Value", WideString(val)); Как...
C/C++ Создание массива BSTR https://www.cyberforum.ru/ c-cpp/ thread929093.html
Как преобразовать нижеследующий код, чтобы строки не выводились, а создавался массив? Количество BSTR заранее неизвестно, но их будет не более 10. Таким образом, можно создать массив размерностью 11, а в качестве признака, что строк больше нет, использовать NULL. Но если есть способ лучше или проще, то я буду только рад. int listVMs(IVirtualBox *virtualBox) { HRESULT rc; /* ...
C/C++ Cpp Builder / Excel https://www.cyberforum.ru/ c-cpp/ thread920467.html
Здравствуйте! Пишу приложение "C++ Builder - OLE Excel" Написал такой код для прорисовки таблицы: vVarCell = vVarCells.OlePropertyGet("Range", "B2:B4"); vVarCell.OlePropertyGet("Select"); for(l = 7; l <= 12; l++){ vVarCell.OlePropertyGet("Borders", l).OlePropertySet("LineStyle",1); vVarCell.OlePropertyGet("Borders", l).OlePropertySet("ColorIndex",1); ...
C/C++ sapi and C++ builder XE4
Всем привет. Пишу на билдере прогу которая будет читать текст. ::CoInitialize(NULL); if( SUCCEEDED( hr ) ) { Word Saved8087CW = Default8087CW; Set8087CW(0x133f); pVoice->Speak(Edit1->Text.c_str(),SPF_DEFAULT, NULL );
C/C++ Работа с OLE (создать документ Access) пытаюсь создать документ access, но выдаёт ошибку. vVarApp=CreateOleObject("Access.Application"); AnsiString vAsCurDir=GetCurrentDir(); AnsiString vAsCurDir1=vAsCurDir+"\\my.mdb"; ShowMessage(vAsCurDir1); vVarDoc.OleProcedure("SaveAs",vAsCurDir1.c_str()); vVarApp.OleProcedure("Quit"); https://www.cyberforum.ru/ c-cpp/ thread913694.html
C/C++ подключение и выполнение https://www.cyberforum.ru/ c-cpp/ thread911917.html
Решил я использовать OLEDB для работы через C++ с Microsodt SQL Server 2008 Express, ничего сложного не нужно, нужно выполнять простейшие вещи, вызвать сохранённую процедуру(Stored Procedure), потом ещё понадобиться поискать совпадения что бы не записать данные которые уже пристутствую и все, тобишь запустить поиск по 2-3 полям, и если равно 0, то завписать, ну а если >0 то уже есть(должна быть...
C/C++ Документация ActiveX
Доброго всем вечера! Заранее прошу прощение, если данная тема уже поднималась. Необходимо сделать небольшой доклад по ActiveX. Несколько часов поиска в интернете дали небольшие результаты, хотелось бы чего-то большего. Необходимо что-либо из ниже перечисленного: - категория клиентов управляющих элементов ActiveX; - спецификация ActiveX элементов; - идея гиперсвязей ActiveX; -...
C/C++ Работа с OLE - сервером Word https://www.cyberforum.ru/ c-cpp/ thread906185.html
- Сейчас разбираюсь с OLE-сервером Word. Понял, что Параграфы (строки) добавляются в Документ Word следующим образом: // добавление Параграфа (строки) в Документ. v_Parags.OleProcedure( "Add" ); // получаем указатель на 1-й Параграф (строку) Документа. v_Parag = v_Parags.OleFunction( "Item", 1 ); // работа с 1-м Параграфом (строкой) Документа. .....
C/C++ Функции COM интерфейса Word на VisualC++ https://www.cyberforum.ru/ c-cpp/ thread905333.html
Добрый день, кто нибудь подскажет как используя функции вордовского COM интерфеса, добавить в документ Word листы или выбрать из существующих.У меня имеется следующий код: void CWordPasteDlg::OnButtonWordPaste() { // TODO: Add your control notification handler code here ::CoInitialize(NULL); try { using namespace Word; _ApplicationPtr word(L"Word.Application");...
C++ и Outlook C/C++
Добрый вечер. Подскажите, как выбрать учетную запись, для отправки письма, если в клиенте их несколько? При формировании письма - он отправляет его с дефолтной записи, а надо, с выбранной... Формирую мисьмо так: Variant OUApp, OUNS, OUBFolder, OUItems, OURange, OUAttach; OUApp = CreateOleObject( "Outlook.Application" ); OUNS = OUApp.OleFunction( "GetNamespace", "MAPI" ); OUBFolder =...
C/C++ Число знаков после запятой при считывании из Excel https://www.cyberforum.ru/ c-cpp/ thread897739.h
Ушел с форума
Эксперт С++
16476 / 7439 / 1187
Регистрация: 02.05.2013
Сообщений: 11,617
Записей в блоге: 1
29.07.2013, 14:50 0

Получить указатель на данные, хранящиеся в SafeArray (не на сам SafeArray) - C/C++ - Ответ 4893869

29.07.2013, 14:50. Показов 2978. Ответов 7
Метки (Все метки)

Ответ

Цитата Сообщение от Vtulhu Посмотреть сообщение
void* getPointer(SAFEARRAY* array) {
return (void*)(array+12);
}
Нет. Выражение "array + 12" даст в итоге указатель, смещенный от array на
"sizeof (array) * 12" байт. Короче, будет указывать в пустоту.
Правильнее так: "((BYTE *)array) + 12".

Цитата Сообщение от Vtulhu Посмотреть сообщение
А это точно необходимо? С самим массивом SAFEARRAY никаких операций производиться не будет.
Я не проверял, но кажется, без SafeArrayLock указатель на данные (pvData) будет нулевым.
Во всяком случае, так подразумевается в соответствующем топике на MSDN.

Вернуться к обсуждению:
Получить указатель на данные, хранящиеся в SafeArray (не на сам SafeArray) C/C++
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.07.2013, 14:50
Готовые ответы и решения:

Bad SAFEARRAY
Создаю функцию которая получает данные из объекта типа _variant_t, мне нужно получить из него 2...

Transpose SafeArray
Всем привет. Набросал функцию для транспонирования SafeArray (двухмерный), с любым типом данных....

Уничтожение SafeArray в Delphi XE
Всем привет. Я перешел с Delphi 7 на Delphi XE4. В седьмой версии при создании элементов типа...

Как передать SAFEARRAY в C#?
Есть такой метод в C++ библиотеке (метод не мой, почему написан именно так не знаю): //CEncrypt...

7
29.07.2013, 14:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.07.2013, 14:50
Помогаю со студенческими работами здесь

COM: SAFEARRAY добавление элементов
День добрый. Перерыл множество ресурсов в поисках ответа на мой вопрос, но всё тщетно. ...

Массив представить в виде SAFEARRAY
Вот такой массив $tak = array(0,0,1,0,1,0,0,0,1,1); Научите, пожалуйста, как представить это в...

Как сделать SafeArray (MFC)?
Сабж, как используя MFC создать SafeArray и сделать метод который принимая их контейнера массив...

Преобразование динамического байтового массива в SafeArray
Здравствуйте товарищи! В общем такая проблема, есть рабочая функция, которая преобразовывает...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru