Форум программистов, компьютерный форум, киберфорум
C++: COM, OLE, ActiveX
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 16.04.2015
Сообщений: 2
1

Ошибка: "binary '=' no operator found which takes a right-hand operand"

17.04.2015, 06:29. Показов 765. Ответов 1
Метки нет (Все метки)

Добрый день.
Пытаюсь функцией вернуть массив byte. Пишу так:
C++
1
2
3
4
5
6
STDMETHODIMP CCLASS::function(VARIANT* Value)
{
    byte abc[] = { 0x34, 0x32, 0x23 };
    *Value = abc;
    return S_OK;
}
В головном классе
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
....
__interface ICLASS : IDispatch
{
[id(1), helpstring("My Function")]
     HRESULT function([out, retval] VARIANT* Value);
};
 
class ATL_NO_VTABLE CCLASS : 
  public ICLASS
{
.....
  public:
  STDMETHOD(function)(VARIANT* Value);
}
Выдает ошибку на "*Value = abc;". Говорит :"binary '=' no operator found which takes a right-hand operand".
Подскажите пожалуйста, как исправить?
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.04.2015, 06:29
Ответы с готовыми решениями:

Ошибка "binary '==': no operator found which takes a left-hand operand of type"
while (currentNode != endNode) { nextNode = path; nextNode1 = path; takeRoute.x =...

Исправить ошибку "error C2679: binary '*' : no operator found which takes a right-hand operand of type"
matiza.h #pragma once template <typename N> class matriza { protected: int stroka; N...

Ошибка binary '=' : no operator found which takes a right-hand operand of type
Ошибка Erro1 error C2679: binary '=' : no operator found which takes a right-hand operand of type...

Ошибка: error C2679: binary '<<' : no operator found which takes a right-hand operand of type
Нужно создать класс List для представления простого списка. Подскажите, почему появляется такая...

1
Модератор
3332 / 2116 / 343
Регистрация: 13.01.2012
Сообщений: 8,245
17.04.2015, 08:56 2
Цитата Сообщение от Mister_Twister Посмотреть сообщение
Подскажите пожалуйста, как исправить?
1 массив можно передать именно как массив. а именно - внутри VARIANT должно быть содержимое типа SAFEARRAY. в начале читать про SAFEARRAY и про то как работать с VARIANT ибо строчка
C++
1
*Value = abc;
это вообще ни разу не то что вы хотели сделать
1.1 можно передать любые бинарные данные поместив их в VARIANT с содержимым типа BSTR.
2 массив можно передать именно как массив. а именно - вместо VARIANT использовать BYTE. память для массива выделять через CoTaskMemAlloc
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.04.2015, 08:56

Binary '==' no operator found which takes a left-hand operand of type 'T'
Здравствуйте. Пытаюсь сравнить элемент массива с объектом,который я создаю в мейн и компилятор...

Error C2679: binary '>>': no operator found which takes a right-hand operand of type
нужно написать программу обработки структур. в программе использовать структуру, содержащую поля с...

no operator found which takes a right/left-hand operand of type "AR"
Нашел на форуме исходник программы, собрал, но выдает ошибку описанную выше #include &lt;iostream&gt;...

No operator found which takes a right-hand operand
Кто подскажет в чем ошибка? #include &lt;iostream&gt; #include &lt;vector&gt; class LongNumber {...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.