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

Получить значение string из объекта COM - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Построить заданное количество геометрической прогрессии http://www.cyberforum.ru/cpp-beginners/thread1222312.html
Построить заданное количество элементов геометрической прогрессии, если произведение первых трех членов геометрической прогрессии равно 1728, а их сумма равна 63.
C++ Считывание строк из файла и запись в разные векторы Как считать строки допустим есть 2 строки в файле input.txt Cat mouse dog House table chair Как их правильно считать и закинуть первую строку в первый вектор ,вторую во второй вектор (каждое слово отдельный элемент) vector<string> v_for_first_str vector<string> v_for_second_str http://www.cyberforum.ru/cpp-beginners/thread1222293.html
C++ Создать класс с именем Date
Создайте класс Date, включающий в качестве элементов данных три информационных пункта: месяц (тип int), день (тип int) и год (тип int). Ваш класс должен меть конструктор с тремя параметрами для инициализации этих элементов данных. Для целей этого упражнения предположите, что данные для года и дня правильные, но проверьте, что значение месяца находится в диапазоне 1-12; если нет, устанавливайте...
Нужно, чтобы каждое записанное число записывалось в файл, каждое с новой строки C++
Нужно, чтобы каждое записанное число записывалось в файл, каждое с новой строки, желательно. В чем здесь ошибка? #include <iostream.h> #include <conio.h> #include <math.h> #include <stdio.h> void main(){ FILE *f; int i; float x, y; f=fopen("1.txt", "w");
C++ В массиве, сформированном случайным образом, найти количество элементов, удовлетворяющих условию http://www.cyberforum.ru/cpp-beginners/thread1222251.html
Переделать код программы, используя динамический массив. В массиве b(25), сформированном случайным образом, найти количество элементов, удовлетворяющих условию l<b<m, где l и m - заданные числа. #include "stdafx.h" #include <iostream> #include <time.h> void main () { setlocale (0, "Russian"); srand(time(NULL)); const int n=25;
C++ В матрице, сформированной случайным образом, заменить элементы побочной диагонали на минимальное В матрице А, сформированной случайным образом, заменить элементы побочной диагонали на минимальное значение матрицы. #include <ctime> #include <iostream> using namespace std; int main() { setlocale(LC_ALL, "Russian"); int min =0; подробнее

Показать сообщение отдельно
AlexLan73
2 / 2 / 1
Регистрация: 06.10.2013
Сообщений: 131
04.07.2014, 08:12     Получить значение string из объекта COM
Добрый день.
Помогите пожалуйста.
Есть COM объект - Ami, выдает значение в _variant_t. Числовые и логические значения получается доставать а строковые как то через.....
Наверняка существует более простой способ.
Мой способ

C++
1
string s = ConvertBSTRToString(_variant_t(Ami->GetCellName(NameTabl, Stolb, i)).bstrVal);
COM ==>> Ami->GetCellName(NameTabl, Stolb, i)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
char* ConvertBSTRToString(BSTR pSrc)
{
    if (!pSrc) return NULL;
    //convert even embeded NULL
    DWORD cb, cwch = ::SysStringLen(pSrc);
    char *szOut = NULL;
    if ((cb = ::WideCharToMultiByte(CP_ACP, 0,
        pSrc, cwch + 1, NULL, 0, 0, 0)) != 0)
    {
        szOut = new char[cb];
        if (szOut)
        {
            szOut[cb - 1] = '\0';
            if (!::WideCharToMultiByte(CP_ACP, 0,
                pSrc, cwch + 1, szOut, cb, 0, 0))
            {
                delete []szOut;//clean up if failed;
                szOut = NULL;
            }
        }
    }
    return szOut;
}
Мне нужно достать строку из СОМ
С уважением, Александр.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru