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

Как перенести приложение вместе с классом на другую машину? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.79
ysbp
0 / 0 / 0
Регистрация: 05.07.2011
Сообщений: 13
02.05.2006, 14:57     Как перенести приложение вместе с классом на другую машину? #1
Могут ли быть проблемы с регистрацией связаны с операционной системой? На XP получается хорошо, а в 2000-ном не идет. Объект COM сделан в XP.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
suffix
Сообщений: n/a
12.05.2006, 23:44     Как перенести приложение вместе с классом на другую машину? #2
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt <FONT face="Times New Roman" color=#000000 size=3>Извиняюсь за задержку, чего то меня до сего дня сервер откидывал…</P><FONT color=#000000><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman' mso-ansi-language: RU; mso-fareast-font-family: 'Times New Roman' mso-fareast-language: RU; mso-bidi-language: AR-SA Причину назвать не могу. Может стоит попробовать разные сочетания версий </SPAN><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman' mso-ansi-language: EN-US; mso-fareast-font-family: 'Times New Roman' mso-fareast-language: RU; mso-bidi-language: AR-SA regsvr</SPAN><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman' mso-ansi-language: RU; mso-fareast-font-family: 'Times New Roman' mso-fareast-language: RU; mso-bidi-language: AR-SA 32<SPAN style="mso-spacerun: yes </SPAN>и– и из</SPAN><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman' mso-ansi-language: EN-US; mso-fareast-font-family: 'Times New Roman' mso-fareast-language: RU; mso-bidi-language: AR-SA W</SPAN><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman' mso-ansi-language: RU; mso-fareast-font-family: 'Times New Roman' mso-fareast-language: RU; mso-bidi-language: AR-SA 2</SPAN><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman' mso-ansi-language: EN-US; mso-fareast-font-family: 'Times New Roman' mso-fareast-language: RU; mso-bidi-language: AR-SA K</SPAN><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman' mso-ansi-language: RU; mso-fareast-font-family: 'Times New Roman' mso-fareast-language: RU; mso-bidi-language: AR-SA , и из </SPAN><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman' mso-ansi-language: EN-US; mso-fareast-font-family: 'Times New Roman' mso-fareast-language: RU; mso-bidi-language: AR-SA XP</SPAN><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman' mso-ansi-language: RU; mso-fareast-font-family: 'Times New Roman' mso-fareast-language: RU; mso-bidi-language: AR-SA , т.е. взять </SPAN><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman' mso-ansi-language: EN-US; mso-fareast-font-family: 'Times New Roman' mso-fareast-language: RU; mso-bidi-language: AR-SA regsvr</SPAN><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman' mso-ansi-language: RU; mso-fareast-font-family: 'Times New Roman' mso-fareast-language: RU; mso-bidi-language: AR-SA 32 из </SPAN><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman' mso-ansi-language: EN-US; mso-fareast-font-family: 'Times New Roman' mso-fareast-language: RU; mso-bidi-language: AR-SA XP</SPAN><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman' mso-ansi-language: RU; mso-fareast-font-family: 'Times New Roman' mso-fareast-language: RU; mso-bidi-language: AR-SA и запустить на машине с </SPAN><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman' mso-ansi-language: EN-US; mso-fareast-font-family: 'Times New Roman' mso-fareast-language: RU; mso-bidi-language: AR-SA W</SPAN><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman' mso-ansi-language: RU; mso-fareast-font-family: 'Times New Roman' mso-fareast-language: RU; mso-bidi-language: AR-SA 2</SPAN><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman' mso-ansi-language: EN-US; mso-fareast-font-family: 'Times New Roman' mso-fareast-language: RU; mso-bidi-language: AR-SA K</SPAN><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman' mso-ansi-language: RU; mso-fareast-font-family: 'Times New Roman' mso-fareast-language: RU; mso-bidi-language: AR-SA . </SPAN>
boombastik
6 / 6 / 0
Регистрация: 13.02.2007
Сообщений: 1,255
13.05.2006, 01:25     Как перенести приложение вместе с классом на другую машину? #3
Это точно не поможет, потому как все что делает regsvr32 сводится к выполнению ф-ций: DllRegisterServer и DllUnregisterServer при регистрации и дерегистрации библиотеки соответственно.



В данном случае могу лишь предположить, что библиотека скомпилирована или использует системные библиотеки / возможности, которые поддерживаются только операционной системой Windows XP. Возможно, в Windows 2000 можно доустановить эти библиотеки, а в Windows XP они предустановлены, возможно используются ф-ции ядра Win API, которые не реализованы в Win 2000.



С уважением,

Владимир
ysbp
0 / 0 / 0
Регистрация: 05.07.2011
Сообщений: 13
27.06.2012, 15:17  [ТС]     Как перенести приложение вместе с классом на другую машину? #4
С помощью ATL я создал класс, реализующий дуальный интерфейс.
Класс этот находится внутри приложения MFC. Все прекрасно работает
на моей машине. Теперь вопрос: как перенести приложение вместе
с этим классом на другую машину? На другой машине нет регистрации
моего класса и соотвестсвующего интерфейса. Как их там зарегистрировать?
suffix
Сообщений: n/a
27.06.2012, 16:33     Как перенести приложение вместе с классом на другую машину? #5
Наиболее простое (для InProcessServer) - с помощью утилиты командной строки regsvr32(см. ключи regsvr32/?) – она просто вызывает реализованные в DLL (это делает мастер ATL) ф-ции DllRegisterServer(), DllUnregisterServer()
ysbp
0 / 0 / 0
Регистрация: 05.07.2011
Сообщений: 13
28.06.2012, 11:19  [ТС]     Как перенести приложение вместе с классом на другую машину? #6
[quote="suffux"]Наиболее простое (для InProcessServer) - с помощью утилиты командной строки regsvr32(см. ключи regsvr32/?)...

Как правильно написать строку после regsvr32, надо путь прописывать к DLL?
Я пишу regsvr32.exe C:MyServer.dll,прописывая адрес ДЛЛ и получаю сообщение
"Не найден путь...".
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.06.2012, 21:03     Как перенести приложение вместе с классом на другую машину?
Еще ссылки по теме:

C++ Как считать файл до конца вместе '\n' ?
Работа с классом (как вызвать или обратится к классу из основной программы?) C++
C++ Потоковый ввод из файла вместе с классом. Не пойму в чем причина

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

Или воспользуйтесь поиском по форуму:
suffix
Сообщений: n/a
28.06.2012, 21:03     Как перенести приложение вместе с классом на другую машину? #7
Чтобы не было проблем с путем, когда используются длинные имена файлов, лучше, находясь в окне командной строки, сделать директорий, где лежит (должна лежать) DLL текущим и запускать утилиту регистрации из этого каталога -
регистрация regsvr32 DllName.dll
снятие регистрации regsvr32 /u DllName.dll
У меня все работает - перепроверил два раза
Если есть проблемы, надо проверить, а экспортируются ли 4 основных ф-ции COM- сервером (DllGetClassObject, DllCanUnloadNow, DllRegisterServer, DllUnregisterServer). Это делается с помощью утилиты dumpbin. Она должна выдать относительные адреса и порядковые номера ф-ций в Ком-сервере:
dumpbin /exports DllName.dll
Если не выдаст - проблемы уже с проектом
Yandex
Объявления
28.06.2012, 21:03     Как перенести приложение вместе с классом на другую машину?
Ответ Создать тему
Опции темы

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