Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
 Аватар для ninja2
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041

Непонятные определения макросов MFC

15.07.2015, 09:26. Показов 630. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть определение макроса:
C++
1
2
3
4
5
6
7
enum AFX_REG_FLAGS
{
    afxRegDefault               = 0x0000,
    afxRegInsertable            = 0x0001,
    afxRegApartmentThreading    = 0x0002,
    afxRegFreeThreading          = 0x0004,
};
из другого макроса вызывается параметр afxRegApartmentThreadin:
C++
1
2
// {1CCB6EAC-3853-4354-8CB2-E454C5B3AE15}
IMPLEMENT_OLECREATE_FLAGS(CMyCom, "My_new_COM.MyCom", afxRegApartmentThreading, 0x1ccb6eac, 0x3853, 0x4354, 0x8c, 0xb2, 0xe4, 0x54, 0xc5, 0xb3, 0xae, 0x15)
Что этот флаг означает?
в макросе IMPLEMENT_OLECREATE_FLAGS идет инициализация static члена:
C++
1
2
COleObjectFactory class_name::factory(class_name::guid, \
        RUNTIME_CLASS(class_name), FALSE, nFlags, _T(external_name)); \
RUNTIME_CLASS возвращает ссылку на указатель переданного класса, а nFlags - это переданный afxRegApartmentThreading, то есть это от число 0x0002 непонятное.
А есть просто вызов макроса IMPLEMENT_OLECREATE там уже объект COleObjectFactory инициализируется без этого флага, то есть в этом объекте похоже есть два конструктора один с флагом, второй без? неясно зачем нужен этот флаг и чем отличается IMPLEMENT_OLECREATE_FLAGS, от IMPLEMENT_OLECREATE? Ну ясно что флагами, а по подробней мб. кто знает?

Добавлено через 1 минуту
Да глянул два конструктора, один с флагом другой без:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
// Construction
public:
    COleObjectFactory(REFCLSID clsid, CRuntimeClass* pRuntimeClass,
        BOOL bMultiInstance, LPCTSTR lpszProgID);
    COleObjectFactory(REFCLSID clsid, CRuntimeClass* pRuntimeClass,
        BOOL bMultiInstance, int nFlags, LPCTSTR lpszProgID);
Ну и в чем отличия господа?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.07.2015, 09:26
Ответы с готовыми решениями:

Непонятные определения winapi
Здравствуйте! Хотела бЫ у знающих людей спросить суть следующих определений winapi: #define LPSTR_TEXTCALLBACKW ((LPWSTR)-1L) ...

Скрываются ли определения макросов так же как область видимости переменных?
Добрый вечер. Подскажите пожалуйста, в книгах и статьях обычно не упоминается, скрываются ли определения макросов так же как область...

Выразить параметры регулятора через критерии модульного определения и системного определения
Uвх=10 нужно выразить регуляторы по критериям МО и СО ,всё понятно,или рет,что не понятно пишите объясню?..

1
15.07.2015, 09:27

Не по теме:

не понятные определения макросов MFC
MFC вообще мало кто может понять, даже микрософт его не до конца понимает

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.07.2015, 09:27
Помогаю со студенческими работами здесь

Составить блок схему к готовому коду определения области определения функции
Program Project2; var x,y: real; begin writeln('Введите значение х'); write('х='); readln(x); if x < 0.1*pi then y :=...

подключение классов MFC к не MFC
Как подключить MFC Class From ActiveX Control к не MFC проекту? т.е. пишу обычными винапи функциями, а из этого класса нужны функции...

Из MFC 2012 в MFC 2005
Есть прокт для студии 12, всё хорошо, писал на 8ке в VS 2012 и он отлично работает. Позже понадобилось портировать его для 2005, я это всё...

Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll
Здравствуйте. Подключил afx.h, появилась ошибка. Из-за чего? Что делать?

Откат макросов
Уважаемые гуры, а просветите балбеса ещё пожалуйста, есть ли в эксельке возможность делать откаты после выполнения макросов и если есть, то...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
BOINC: 22 года — и всё ещё работает
Programma_Boinc 12.03.2026
BOINC: 22 года — и всё ещё работает Дэвид Андерсон написал ретроспективу. Кратко: в 2001 году он ушёл из United Devices, где был CTO, и за несколько месяцев написал ядро BOINC — клиент, сервер,. . .
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru