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

ATL не ясно как добавить объект - C++

Восстановить пароль Регистрация
 
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
01.08.2015, 19:01     ATL не ясно как добавить объект #1
Здорова!
Создал проект ATL dll. В книге написано: "После создания COM сервера можно добавлять в него COM классы. Для вызова мастера выберите в меню Insert New Atl Object. При генерации нового проекта мастер добавит в проект файл исходного кода класса С++ содержащие реализацию и определение нового класса. Кроме того он добавляет интерфейс в IDL файл"

там написано для VS6, а у меня 10 и пункта меню Insert нету. Где искать добавление COM классов? Там есть добавление обычных классов, но там в книге рисунок именно должно быть не просто классов добавление а COM.???

Добавлено через 19 минут
Я уже разобрал, как обычный класс созаем, только выбираем простой ATL.

Пишут что в ATL создавать COM классы так же легко как и создавать программы на основе MFC. ???

Добавлено через 43 минуты
А можно добавить интерфейсы COM в ATL как то с помощью мастера? В книге пишут что только в ручную можно добавлять, но то старая книга и там vs6, а у меня 10, мб. можно как то не вручную добавлять?

Добавлено через 7 минут
от еще не ясно в книге пишут: "После введения интерфейсов в IDL файл, заново пропустите IDL файл через компилятор MIDL для создания новой копии spaceshipsvr.h с чисто абстрактными базовыми классами новых интерфейсов." Тех интерфейсов что мы добавили в IDL файл. Как запустить этот MIDL или он автоматом запускается?

Добавлено через 8 минут
Он автоматом создается, просто нажимаем F5 и он пересоздается или хз, а мб. и просто сам на автомате.

Добавлено через 8 минут
Там еще в карту интерфейсов тоже нужно добавлять, а для дуальных интерфейсов есть свой макрос специальный и если у нас определено два дуальных интерфейса мы в этом макросе указываем какой будет передан пользователю чтобы не было проблем.

Добавлено через 1 минуту
Вообще ATL при создании COM использует наследование походу, а MFC встроенные классы.

Добавлено через 18 минут
Создал COM dll, теперь ее нужно протестировать. А где в ATL progID моей dll находится?

Добавлено через 18 минут
Никак не могу найти progID, кто знает где его смотреть в ATL для обычной dll?

Добавлено через 24 секунды
в IDL файле вроде интерфейсы и классы.

Добавлено через 13 минут
Там нужно вручную добавил в фал геристра, но это не правильно, он по идее должен сам добавлятся, а у меня не добавляется? хз. мб. получится так что я два progid для одной программы создам, мб. сама программа создает, а я просто его не знаю? Кто знает как в ATL создаются progID и где их менять?

Добавлено через 6 минут
В общем если мы его не создали то у нас его нету, нужно при создании COM класса указывать, если не указали то в ручную добавляем в файл регистрации класса. Там в проекте создается файл в котором прописаны настройки регистрации, в него добавляем код который добавит progId в реестр либо вручную в реестр прописываем, где CLSID это CLSID нашего COM класса из файла IDL
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.08.2015, 19:01     ATL не ясно как добавить объект
Посмотрите здесь:

C++ где искать DllMain в ATL 7.0
Что значит константный указатель на объект, указатель на константный объект, и как это можно использовать? C++
C++ Как добавить объект в вектор?
Как добавить в вектор приватный объект класса C++
ATL C++
Не могу добавить объект к множеству C++
C++ Добавить объект класса
C++ В ATL нашел код: __interface - как это работает

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4841 / 2980 / 367
Регистрация: 10.11.2010
Сообщений: 11,012
Записей в блоге: 10
Завершенные тесты: 1
01.08.2015, 19:03     ATL не ясно как добавить объект #2
Я дико извиняюсь что вмешиваюсь в вашу дискуссию....., вы решили проблему?
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
01.08.2015, 23:56  [ТС]     ATL не ясно как добавить объект #3
Цитата Сообщение от castaway Посмотреть сообщение
Я дико извиняюсь что вмешиваюсь в вашу дискуссию....., вы решили проблему?
Да разобрался как COM объекты создавать. С ATL легче создавать чем в MFC, мастер все делает. Попробую AсtiveX создать. Оно сложновато разобраться много новых терминов. Там теории очень очень много и терминов новых.

Добавлено через 2 минуты
Я еще не протестил COM что создал, щас клиент создам и потестю как он будет работать.

Добавлено через 26 минут
Там неясно еще где брать IID интерфейсов. CLASID есть, а IID нету, похоже нужно переводить как то или хз.

Добавлено через 30 минут
ATL генерирует два файла, я их добавил в проект клиента и выскаличила ошибка:
spaceshipsvr_i.c
1>d:\visual studio 2010\projects\test_com1\test_com1\spaceshipsvr_i.c : fatal error C1853: файл предкомпилированного заголовка "Debug\test_COM1.pch" создан в предыдущей версии компилятора или предкомпилированный заголовок C++ используется из C (или наоборот)
1>
В чем проблема?
Yandex
Объявления
01.08.2015, 23:56     ATL не ясно как добавить объект
Ответ Создать тему
Опции темы

Текущее время: 16:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru