На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS
msm.ru
Обратите внимание:
1. Прежде чем начать новую тему или отправить сообщение, убедитесь, что вы не нарушаете правил форума!
2. Обязательно воспользуйтесь поиском. Возможно, Ваш вопрос уже обсуждали. Полезные ссылки приведены ниже.
3. Темы с просьбой выполнить какую-либо работу за автора в этом разделе не обсуждаются.
4. Используйте теги [ code=cpp ] ...текст программы... [ /code ] для выделения текста программы подсветкой.
5. Помните, здесь телепатов нет. Старайтесь формулировать свой вопрос максимально грамотно и чётко: Как правильно задавать вопросы
6. Запрещено отвечать в темы месячной и более давности без веских на то причин.

Полезные ссылки:
user posted image FAQ Сайта (C++) user posted image FAQ Форума user posted image Наши Исходники user posted image Поиск по Разделу user posted image MSDN Library Online (Windows Driver Kit) user posted image Google

Ваше мнение о модераторах: user posted image B.V.
Модераторы: B.V.
Страницы: (2) [1] 2  все  ( Перейти к последнему сообщению )  
> Создаем свой COM объект с эвентами, и тестируем его
    В связи с большим объемом вопросов по сабжу кладу 2 своих тьюториала по созданию простого COM-объекта с эвентами и приложения, которое его использует.

    Все выполнялось в среде Visual Studio 2003, т.к. в 2005 я никогда этого не делал (и не собираюсь ;)), а VS 6 морально устарела.

    Тьюторы по-англицки, т.к. русским не владею :)

    Сорс код можете использовать как угодно, никаких ссылок на автора соблюдать не обязательно...
    Среднестатистический житель Петербурга различает до двух с половиной тысяч оттенков серого
    ლ(ಠ益ಠლ) ( ͡- ͜ʖ ͡-) ( ͡° ͜ʖ ͡°) (╯°□°)╯ ¯\_(ツ)_/¯༼ ຈل͜ຈ༽
      Тьютор 1. Делаем COM-объект.
      Прикреплённый файлПрикреплённый файлCreating_ATL_Object_with_Events.zip (353.81 Кбайт, скачиваний: 1374)
      Среднестатистический житель Петербурга различает до двух с половиной тысяч оттенков серого
      ლ(ಠ益ಠლ) ( ͡- ͜ʖ ͡-) ( ͡° ͜ʖ ͡°) (╯°□°)╯ ¯\_(ツ)_/¯༼ ຈل͜ຈ༽
        Тьютор 2. Делаем приложение - тестер
        Прикреплённый файлПрикреплённый файлUsing_ATL_Object_with_Events.zip (151.37 Кбайт, скачиваний: 1004)
        Среднестатистический житель Петербурга различает до двух с половиной тысяч оттенков серого
        ლ(ಠ益ಠლ) ( ͡- ͜ʖ ͡-) ( ͡° ͜ʖ ͡°) (╯°□°)╯ ¯\_(ツ)_/¯༼ ຈل͜ຈ༽
          Сорс код
          Прикреплённый файлПрикреплённый файлMyAtlProject.zip (68.81 Кбайт, скачиваний: 957)
          Среднестатистический житель Петербурга различает до двух с половиной тысяч оттенков серого
          ლ(ಠ益ಠლ) ( ͡- ͜ʖ ͡-) ( ͡° ͜ʖ ͡°) (╯°□°)╯ ¯\_(ツ)_/¯༼ ຈل͜ຈ༽
            Uncle_Bob
            вопрос 1.
            зачем создовать втарой интерфейс (_IMyAtlObjectEvents) если можно реализовать метод интерфайса(_IMyAtlObjectEvents) StringEnumrated() в интерфейсе IMyAtlObject.
            Вопрос 2.
            почему на клиентской стороне в функции кнопки (OnBnClickedButton1) вызовается метод интерфейса (IMyAtlObject.) EnumStrings() а потом в нем вызовается метог интерфейса (_IMyAtlObjectEvents) Fire_StringEnumrated() .
            нельзя было просто стазу в (OnBnClickedButton1) вызвать Fire_StringEnumrated() и все.
            P.S
            если где туплю сори:)
            Сообщение отредактировано: Uncle_Bob -
            Цитата
            Any fool can write code that a computer can understand. Good programmers write code that humans can understand. © Martin Fowler.
              knut, все это сделано только с целью демонстрации, как ипользовать диспатч интерфейс для генерации и ловли эвентов, никакой смысловой нагрузки в этом нет.
              Среднестатистический житель Петербурга различает до двух с половиной тысяч оттенков серого
              ლ(ಠ益ಠლ) ( ͡- ͜ʖ ͡-) ( ͡° ͜ʖ ͡°) (╯°□°)╯ ¯\_(ツ)_/¯༼ ຈل͜ຈ༽
                Можно ссылки обновить, архивы битые.
                  !
                  Еще раз... Аттачи криво скачиваются в IE. Используйте Opera или Firefox!
                  Среднестатистический житель Петербурга различает до двух с половиной тысяч оттенков серого
                  ლ(ಠ益ಠლ) ( ͡- ͜ʖ ͡-) ( ͡° ͜ʖ ͡°) (╯°□°)╯ ¯\_(ツ)_/¯༼ ຈل͜ຈ༽
                    А как сделать нечто подобное, но для 2 exe приложений?
                      Как использовать COM-объект, если при его создании выбрали не DLL, а Service?
                      При попытке вызова CoCreateInstance в клиенте, приложение на несколько секунд подвисает и выдает ошибку "Ошибка при выполнении приложения сервера".
                        О, да. С сервисом очень актуальный вопрос. Рядом тема есть даже.
                          Если вы создаёте компоненту с использованием ATL, то нужно выбирать правильный тип проекта:
                          user posted image
                          см. в аттаче пример клиента и сервера-сервиса.
                          Прикреплённый файлПрикреплённый файлCOM_Sample.zip (44.33 Кбайт, скачиваний: 446)
                            А своими словами можете пояснить особенность отличий сервера как сервиса и как exe-приложения?
                              Обычно COM-сервер в виде сервиса реализуется в том случае, когда нужно чтобы код компоненты выполнялся в контексте определённого пользователя (того, от чьего имени запущен сервис) или если есть код, который должен быть активен всегда, вне зависимости от того есть ли активные пользователи компоненты или их нет.
                                Цитата Uncle_Bob @
                                Сорс код

                                а можна глупый вопрос.... :blush: шо делает данная программа? вводится циферка, и начинают выводиться сообщения. как только дойдёт до указанной циферки пишет что что то выполнено :) поясните по подробнее, пожалуйста.
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script Execution time: 0,1314 ]   [ 18 queries used ]   [ Generated: 20.10.19, 19:24 GMT ]