Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
ninja2
969 / 188 / 32
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
#1

Код, который проверяет есть ли в регистре идентификатор GUID - как он работает?

15.07.2015, 12:55. Просмотров 340. Ответов 2
Метки нет (Все метки)

Есть код который как бы проверяет есть ли в регистре идентификатор GUID или нет, вот он:
C++
1
2
3
4
5
6
hr=HRESULT;
CLSID clsid;
if ((hr = ::CLSIDFromProgID(L"MyComDll", &clsid)) != NOERROR) {
        TRACE("unable to find Program ID -- error = %x\n", hr);
        return;
    }
Не ясно как он работает, он не просто проверяет, он в переменную GUID clsid, по ссылке передает GUID зарегистрированного объекта.
Что эта функция должна вернуть и как оно присваивается hr? Я вообще этот макрос HRESULT никак не пойму что это, это что функция которая возвращает булево значение?

Получается от такая штука:
C++
1
2
3
4
5
6
hr=__success(return >= 0);
GUID clsid;
if ((hr = ::CLSIDFromProgID(L"MyComDll", &clsid)) != NOERROR) {
        TRACE("unable to find Program ID -- error = %x\n", hr);
        return;
    }
и что это выходит? Мы функции присваиваем какое то значение?
определение __success:
C++
1
#define __success(expr)          __allowed(on_function_or_typedecl)
Ничего не ясно что здесь происходит и как использовать это. Или просто использовать как конструкцию та и все?

Добавлено через 24 минуты
в определении функции написано что это /* other helpers */
типо вспомогательные функции или что?, вот ее определение:
C++
1
__checkReturn WINOLEAPI IIDFromString(__in LPCOLESTR lpsz, __out LPIID lpiid);

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.07.2015, 12:55
Ответы с готовыми решениями:

Есть следующий код как он работает, кто может объяснить подробнее
Сам я дельфист. Знатоки С++ есть массив следующий: const uint8_t Font = ...

нужнен скрипт,который проверяет,есть ли на 0 строке в фаиле-базе что-то
нужнен скрипт,который проверяет,есть ли на 0 строке в фаиле-базе что-то.если...

Написать код, который проверяет знание таблицы умножения
Помогите, очень буду благодарен, написать код на Java Script. Зарание спасибо...

Есть JS код, который по буквам выводит текст, как сделать перенос строки?
Всем привет! Есть JS код, который делает эффект печатания текста, т.е. выводит...

Есть ли в VBA оператор, который работает как VLOOKUP ну или Index и Match?
Всем здрасти! Простенький вопросик, есть ли в VBA оператор, который работает...

2
rikimaru2013
C++ Game Dev
2471 / 1140 / 348
Регистрация: 30.11.2013
Сообщений: 3,709
15.07.2015, 12:58 #2
C++
1
идентификатор GUID
так я где-то слышал, что он практически уникален. Им то и пользуется, потому что встретить такой же в мире крайне редко можно
0
vxg
Модератор
3236 / 2040 / 319
Регистрация: 13.01.2012
Сообщений: 7,898
15.07.2015, 14:21 #3
Цитата Сообщение от ninja2 Посмотреть сообщение
Не ясно как он работает
не пишите все в одну строку и будет ясно. и вообще не ясно что это за язык. должно быть как то так
C++
1
2
3
4
5
6
HRESULT hr; //теперь у нас есть hr с типом HRESULT
CLSID clsid; //теперь у нас есть clsid с типом CLSID 
hr = ::CLSIDFromProgID(L"MyComDll", &clsid); //теперь мы просим систему найти для нас clsid по заданному ProgID
if (FAILED(hr)) { //если функция отработала с ошибкой делаем что то
        return;
    }
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.07.2015, 14:21

Как менять цвета рандомно, нашел код который работает, но я кое-что не понимаю
Искал в инете как менять цвета рандомно, нашел код который работает, но я...

Есть код на паскале, нужно понять, как он работает
я не могу понять алгоритм программы разбиение числа n на k слагаемых например,...

Есть код, который не компилируется в онлайн-компиляторе
Прошу помочь скомпилировать код, т.к на ideone.com он не работает, а установить...


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

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

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