Сервер не регистрируется
От: vb Украина  
Дата: 25.12.01 09:18
Оценка:
Всем добрый день.
Помогите пожалуйста решить проблемму.
Есть EXE-клиент и DLL-сервер на базе ATL с единственным классом.
В клиенте я вручную регистрирую сервер:
[code]

HINSTANCE hDLL = LoadLibrary("MyServer.dll");
typedef HRESULT (*PServerFnc)(void);
PServerFnc pServerFnc;
pServerFnc = (PServerFnc)GetProcAddress(hDLL, "DllRegisterServer");
HRESULT hr=pServerFnc();

[\code]
На моей машине все проходит хорошо.
Но когда я запускаю EXE файл на другой машине то функция "DllRegisterServer"
возвращает код ошибки:
hr=0x80040154 ("Class not registered");

В начале на другой машине "MyServer.dll" вообще не хотел загружаться
поскольку отсутствовали библиотеки:
atl.dll и Shlwapi.dll
Может быть класс не регистрируется потому, что я забыл еще что-то скопировать?
Re: Сервер не регистрируется
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 25.12.01 09:27
Оценка:
Здравствуйте vb, Вы писали:

vb>Может быть класс не регистрируется потому, что я забыл еще что-то скопировать?


Самое вероятное
Re: Сервер не регистрируется
От: OlegO Россия http://www.mediachase.ru
Дата: 25.12.01 09:48
Оценка:
Используй Depends.exe (из стандартных средств Visual Studion)
для своего компонента на другой машине, он покажет чего не хватает.
(красным цветом подсветит )
С уважением, OlegO.
Re[2]: Сервер не регистрируется
От: vb Украина  
Дата: 26.12.01 06:51
Оценка:
Здравствуйте OlegO, Вы писали:

OO>Используй Depends.exe (из стандартных средств Visual Studion)

OO>для своего компонента на другой машине, он покажет чего не хватает.
OO>(красным цветом подсветит )
Depends.exe показывает, что све на месте (недостающих файлов нет), а сервер всеравно не регистрируется.
Re[3]: Сервер не регистрируется
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 27.12.01 04:08
Оценка:
Здравствуйте vb, Вы писали:

vb>Здравствуйте OlegO, Вы писали:


OO>>Используй Depends.exe (из стандартных средств Visual Studion)

OO>>для своего компонента на другой машине, он покажет чего не хватает.
OO>>(красным цветом подсветит )
vb>Depends.exe показывает, что све на месте (недостающих файлов нет), а сервер всеравно не регистрируется.

а профилирование запускал? или смотрел только то что статически прилинковано?
Re[4]: Сервер не регистрируется
От: vb Украина  
Дата: 27.12.01 08:41
Оценка:
Здравствуйте Odi$$ey, Вы писали:

OO>>>Используй Depends.exe (из стандартных средств Visual Studion)

OO>>>для своего компонента на другой машине, он покажет чего не хватает.
OO>>>(красным цветом подсветит )
vb>>Depends.exe показывает, что све на месте (недостающих файлов нет), а сервер всеравно не регистрируется.

O$>а профилирование запускал? или смотрел только то что статически прилинковано?

Наверняка нет, потому что не знаю что это такое и как им пользоваться.
Подскажите пожалуйста.
Re[5]: Сервер не регистрируется
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 27.12.01 09:09
Оценка:
Здравствуйте vb, Вы писали:

OO>>>>Используй Depends.exe (из стандартных средств Visual Studion)

OO>>>>для своего компонента на другой машине, он покажет чего не хватает.
OO>>>>(красным цветом подсветит )
vb>>>Depends.exe показывает, что све на месте (недостающих файлов нет), а сервер всеравно не регистрируется.

O$>>а профилирование запускал? или смотрел только то что статически прилинковано?

Profile->Start Profiling и потом смотри в окошке Module, чего добавилось.

З.Ы. Учти также, что dll не только должна просто быть на той машине, но и еще должна быть доступна через переменную среды PATH
Re[6]: Сервер не регистрируется
От: vb Украина  
Дата: 27.12.01 10:54
Оценка:
Здравствуйте Odi$$ey, Вы писали:

O$>Здравствуйте vb, Вы писали:

OO>>>>>Используй Depends.exe (из стандартных средств Visual Studion)

OO>>>>>для своего компонента на другой машине, он покажет чего не хватает.
OO>>>>>(красным цветом подсветит )
vb>>>>Depends.exe показывает, что све на месте (недостающих файлов нет), а сервер всеравно не регистрируется.

O$>>>а профилирование запускал? или смотрел только то что статически прилинковано?

Profile->>Start Profiling и потом смотри в окошке Module, чего добавилось.

Что такое "Profile"?
Это Profile.exe поставляемая вместе с VC++ или это
"VisualC++"->Menu->Build->Profile...?
Если это Profile.exe то как для этого консольного приложения вызвать "Start Profiling"?
Если это "VisualC++"->Menu->Build->Profile... то опять же непонятно какие опции выбрать.
И где искать окошко "Module"?
Проститеб я может быть задаю глупые вопросы, просто я впервые сталкиваюсь с Profiling.
Re[7]: Сервер не регистрируется
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 27.12.01 10:59
Оценка:
Здравствуйте vb, Вы писали:

Profile->>>Start Profiling и потом смотри в окошке Module, чего добавилось.

vb>Что такое "Profile"?


это пункт меню в Dependency Walker (depends.exe)
Re[8]: Сервер не регистрируется
От: vb Украина  
Дата: 27.12.01 11:39
Оценка:
Здравствуйте Odi$$ey, Вы писали:

O$>Здравствуйте vb, Вы писали:

Profile->>>>Start Profiling и потом смотри в окошке Module, чего добавилось.

vb>>Что такое "Profile"?


O$>это пункт меню в Dependency Walker (depends.exe)

У меня Dependency Walker версии 1.0
Я не нашел в нем меню "Profile".
Re[9]: Сервер не регистрируется
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 27.12.01 11:43
Оценка:
Здравствуйте vb, Вы писали:

vb>>>Что такое "Profile"?


O$>>это пункт меню в Dependency Walker (depends.exe)

vb>У меня Dependency Walker версии 1.0

vb>Я не нашел в нем меню "Profile".

Ищи Version 2.1.2519, не найдешь могу закинуть на мыло.
Re: Сервер не регистрируется
От: Аноним  
Дата: 27.12.01 11:57
Оценка:
Здравствуйте vb, Вы писали:

vb>Может быть класс не регистрируется потому, что я забыл еще что-то скопировать?


а atl.dll зарегистрирован?
Re[10]: Сервер не регистрируется
От: vb Украина  
Дата: 27.12.01 14:04
Оценка:
Здравствуйте Odi$$ey, Вы писали:

O$>Здравствуйте vb, Вы писали:

vb>>>>Что такое "Profile"?


O$>>>это пункт меню в Dependency Walker (depends.exe)

vb>>У меня Dependency Walker версии 1.0

vb>>Я не нашел в нем меню "Profile".

O$>Ищи Version 2.1.2519, не найдешь могу закинуть на мыло.

Мой e-mail: vb@vn.ua
заранее благодарен.
Re[2]: Сервер не регистрируется
От: vb Украина  
Дата: 27.12.01 14:07
Оценка:
Здравствуйте Ivan, Вы писали:

I>Здравствуйте vb, Вы писали:


vb>>Может быть класс не регистрируется потому, что я забыл еще что-то скопировать?


I>а atl.dll зарегистрирован?

Быстрей всего что нет. Спасибо за совет.
Я так понимаю, что я должен вызвать "DllRegisterServer" для atl.dll?
Re[2]: Сервер не регистрируется
От: vb Украина  
Дата: 27.12.01 14:10
Оценка:
Здравствуйте Ivan, Вы писали:

I>Здравствуйте vb, Вы писали:


vb>>Может быть класс не регистрируется потому, что я забыл еще что-то скопировать?


I>а atl.dll зарегистрирован?


Может что-то еще надо регистрировать?
Re[3]: Сервер не регистрируется
От: Sashko Россия http://www.dc.baika.ru/
Дата: 29.12.01 13:13
Оценка:
Здравствуйте vb, Вы писали:

I>>а atl.dll зарегистрирован?


vb>Может что-то еще надо регистрировать?


Да, если у тебя это что-то используется во время регистрации. А так, самое верное, у тебя на той машине ATL.DLL нет. Либо положи ее туда и зарегистри, либо перекомпили проект без использования ATL.DLL, тогда код регистратора (которые rgs файлы парсит и выполняет) к тебе статически прилинкуется.
Re[4]: Сервер не регистрируется
От: vb Украина  
Дата: 30.12.01 12:21
Оценка:
Здравствуйте Sashko, Вы писали:

S>Здравствуйте vb, Вы писали:


I>>>а atl.dll зарегистрирован?


vb>>Может что-то еще надо регистрировать?


S>Да, если у тебя это что-то используется во время регистрации. А так, самое верное, у тебя на той машине ATL.DLL нет. Либо положи ее туда и зарегистри, либо перекомпили проект без использования ATL.DLL, тогда код регистратора (которые rgs файлы парсит и выполняет) к тебе статически прилинкуется.


Большое спасибо за совет. Какраз в этом и была причина. Я перекомпелил проект так,чтоб он не использовал ATL.DLL и все заработало.

Всем большое спасибо,кто откликнулся на мой вопрос.
Всех с наступающим Новым Годом.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.