На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное 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.
  
> register scripts
    есть в студии 6 в проекте такой файлик, .rgs, в котором скрипты для регистрации COM - сервера находятся:) и все бы хорошо, только после компилции VC упорно пишет
    Цитата

    Registering ActiveX Control...
    'regsvr32' is not recognized as an internal or external command,
    operable program or batch file.

    что за х?
    как можно ручками зарегить COM сервер, чтобы у него было тот clsid, который я хочу?
    я так понимаю, юзая regsvr32, но у нее ж нигде не задашь желаемый clsid
      regsvr32.exe - это файлик, который регистрирует dll или ocx

      делает он это так: запускаешь regsvr32 my.dll, он вызывает из нее функцию DllRegisterServer
        Это я понимаю:)
        но в DllRegisterServer стоит

        return _Module.RegisterServer(TRUE);

        и все.

        а я хочу зарегать под конкретным clsid.
        я так понял, для этого и используется .rgs файл.
        но он не отрабатывает, хз почему
          Немного не понятный вопрос. Сначала ты говоришь, что не хочет регестрироваться COM сервер.
          Потом ты говоришь, что можно его зарегестрировать, но ты хочешь что-бы там был тот CLSID , который ты хочешь.
          GUIDGEN.exe генерирует уникальный индентификаторы, а зарегестрировать его можно через файл *.Reg - файле системного реестра.

          Вот примерно как должно это выглядеть.
          HKEY_CLASSES_ROOT\Simple.Object\CLSID = {F845EE21-BB3F-11cf-8CDD-444553540000}
          HKEY_CLASSES_ROOT\CLSID\{F845EE21-BB3F-11cf-8CDD-444553540000} = Simple Object Server
          HKEY_CLASSES_ROOT\CLSID\{F845EE21-BB3F-11cf-8CDD-444553540000}\LocalServer32 = C:\Program Files\MCDC\Labs\Lab02\SimpleServer\ReleaseSimpleServer.exe

          Генеришь IID, копируешь в этот файл и запускаешь его. И не забудь в программе тоже поменять CLSID на новые.
          Сообщение отредактировано: Gazon -
            вот у меня ATL-ый компонент регистрируется тоже через _Module.RegisterServer(TRUE).
            А еще в этом файле есть такие строчки:
            ExpandedWrap disabled
               
              CComModule _Module;
               
              BEGIN_OBJECT_MAP(ObjectMap)
              OBJECT_ENTRY(CLSID_CellCounter, CCellCounter)
              END_OBJECT_MAP()


            в общем, надеюсь, догадаешься :)
              Все дело в том, что VC просто не может найти regsv32.exe
                Цитата
                Guest, 25.05.04, 15:50
                Все дело в том, что VC просто не может найти regsv32.exe

                а как ему помочь его найти?
                  Ну вообще этот файл должен ставиться вместе с виндами.
                    ну дык из консоли он запускается... а VC его запустить не может. лежит он стандартно c:\windowxp\system32\regscr32.exe
                    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                    0 пользователей:


                    Рейтинг@Mail.ru
                    [ Script execution time: 0,0314 ]   [ 16 queries used ]   [ Generated: 19.04.24, 13:38 GMT ]