Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[13.59.236.219] |
|
Сообщ.
#1
,
|
|
|
есть в студии 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 |
Сообщ.
#2
,
|
|
|
regsvr32.exe - это файлик, который регистрирует dll или ocx
делает он это так: запускаешь regsvr32 my.dll, он вызывает из нее функцию DllRegisterServer |
Сообщ.
#3
,
|
|
|
Это я понимаю:)
но в DllRegisterServer стоит return _Module.RegisterServer(TRUE); и все. а я хочу зарегать под конкретным clsid. я так понял, для этого и используется .rgs файл. но он не отрабатывает, хз почему |
Сообщ.
#4
,
|
|
|
Немного не понятный вопрос. Сначала ты говоришь, что не хочет регестрироваться 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 на новые. |
Сообщ.
#5
,
|
|
|
вот у меня ATL-ый компонент регистрируется тоже через _Module.RegisterServer(TRUE).
А еще в этом файле есть такие строчки: CComModule _Module; BEGIN_OBJECT_MAP(ObjectMap) OBJECT_ENTRY(CLSID_CellCounter, CCellCounter) END_OBJECT_MAP() в общем, надеюсь, догадаешься |
Сообщ.
#6
,
|
|
|
Все дело в том, что VC просто не может найти regsv32.exe
|
Сообщ.
#7
,
|
|
|
Цитата Guest, 25.05.04, 15:50 Все дело в том, что VC просто не может найти regsv32.exe а как ему помочь его найти? |
Сообщ.
#8
,
|
|
|
Ну вообще этот файл должен ставиться вместе с виндами.
|
Сообщ.
#9
,
|
|
|
ну дык из консоли он запускается... а VC его запустить не может. лежит он стандартно c:\windowxp\system32\regscr32.exe
|