Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 8 мая!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Слушай, дружище, зачем так мучиться с этим языком С++, ты ведь не Билл Гейтс. Возьми тот же Python и программируй, он кроссплатформенный, под Windows тоже работает. Я сам давно заметил: то что на Си пишешь в страницу кода, на питоне решается в одну-две строки. При том, питон намного проще, я его сам недавно изучил по видеокурсу вот этому. Кстати, автор отлично там объясняет. Буквально день-два и уже будешь писать на нём, чего не скажешь про сложный С++.

Visual C++. ATL
Урок 20. Метод с возвращаемым значением

До этого мы рассматривали с вами методы без возвращаемого значения. Вернее сказать, они не возвращали значения в клиенте при использовании нашего компонента. Внутри же кода C++ они возвращали значение типа HRESULT - т. н. успех или не успех вызова этого метода.

Как же нам сделать так, что бы некоторый метод возвращал значение (при вызове этого метода в клиенте, разумеется)? Очень просто - нам надо объявить последний параметр для этого метода во-первых, с атрибутами [out, retval] и во-вторых, этот параметр должен быть указателем (приблизительно как в методе get_... для получения значения свойства). Таким образом в C++ коде у нашего метода будет на один параметр больше, чем в клиенте.

Практически это делаем так - в окне Add Method to Interface в текстовом поле Parameters вводим что-то вроде "[out, retval] short * res" для последнего метода:

Окно Add Method to Interface

И еще раз обратите внимание, что параметр с атрибутами [out, retval] должен быть последним параметром в методе. Т. е. если у нас есть несколько параметров, то наш метод должен выглядеть приблизительно так в idl-файле:

[id(2), helpstring("method MyMethod2")]
 
     HRESULT MyMethod2(short a, short b, [out, retval] short * res);

В клиенте же для приведенного метода будет только два параметра - т. е. на один меньше.



<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS