![]() |
|
|
![]()
|
|
| Max_1_ |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 23.3.2007 Репутация: нет Всего: нет |
Всем привет! Помогите пожалуйста.
Написал программу на Visual C++. Проект такого типа MFC->SDI. (не использовал .NET, ) В программе использовал activex - компонент таблицу (от ComponentOne) Программа работает на моем компе, а на других нет. (выскакивает сообщение: An supported operation was attempted) Думаю, что необходимо както внедрить в код библиотеки компонента. Как мне это сделать? Причем до этого прогу написал с использованием тоже activex-компонента таблицы, но уже микрософтовской. Та прога работала везде. Это сообщение отредактировал(а) Max_1_ - 6.11.2007, 22:26 |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 8 Всего: 223 |
Отсуствует ActiveX компонент на другом компе. Необходимо инсталировать его на этом самом компе. Вариантов инсталяции может быть много, и в первую очередь это зависит от самого ActiveX компонента. В простейшем случае будет достаточно скопировать файл с ним куда-нибудь в папку к Windows (или в папку со своим приложением) и вызвать regsvr32 /s <ActiveX file>. Файл с компонентом можно поместить в ресурс приложения и извлечь его оттуда при инсталяции. Если компонент требует более одного файла или идет со своим собственным инсталятором, то можно все это завернуть в самораспаковывающийся архив, поместить его в ресурс и при инсталяции извлечь и распаковать, после чего установить. Для проверки, установлен ли компонент на машине можно попробовать создать экземпляр объекта - если будет ошибка REGDB_E_CLASSNOTREG то компонент не установлен. |
|||
|
||||
| Max_1_ |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 23.3.2007 Репутация: нет Всего: нет |
Спасибо понял в чем дело.
А если я смогу проверить установлен ли компонент на машине как ты сказал, то можно ли прям из программы зарегистрировать? Наверно придется пользоваться Api функциями? |
|||
|
||||
| xvr |
|
||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 8 Всего: 223 |
Зарегистрировать можно. Нужно вызвать функцию DllRegisterServer из файла с компонентом ActiveX (это обычная dll). Приблизительно так (копия из MSDN):
Еще оттуда же:
|
||||||
|
|||||||
| Max_1_ |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 23.3.2007 Репутация: нет Всего: нет |
Большое спасибо!
Буду пробовать... |
|||
|
||||
| Max_1_ |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 23.3.2007 Репутация: нет Всего: нет |
заработало! УРА!
вот это супер. Ещё раз спасибо XVR _______________________ Проблема решена. |
|||
|
||||
| Fobos |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 9.2.2008 Где: Москва Репутация: нет Всего: нет |
У меня аналогичная проблема: в результате запуска программы вылазить сообщение
Приложение не было запущено, поскольку оно некорректно настроено. Повторная установка приложения может решить данную проблему. Писал в Visual Studio с использованием MFC. Если я не ошибаюсь, то List Control который я использовал в программе является ActiveX компонентом, как мне найту ту библиотеку в которой он содержится, чтобы установить ее на другом компе. |
|||
|
||||
| xvr |
|
||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 8 Всего: 223 |
Это не ActiveX, это банальное отсуствие нужных dll
|
||||||
|
|||||||
| Fobos |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 9.2.2008 Где: Москва Репутация: нет Всего: нет |
Я просмотрел таблицу импорта этого приложения, все библиотеки которые там были я скинул в папку программы, но сообщение выпадает тоже самое.
|
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 5 Всего: 118 |
скинули те длл-ки и что? это ничего не значит. Могут быть более глубокие зависимости. Используйте depends.exe (входит в поставку студии) для анализа зависимостей.
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| Fobos |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 9.2.2008 Где: Москва Репутация: нет Всего: нет |
Ну я по этой рограмме все зависимости посмотрел, у меня все есть, за иключением этих трех, но они есть в папке программы:
MFC80U.DLL MSVCP80.DLL MSVCR80.DLL программа не работает, может еще у кого есть какие мысли |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 8 Всего: 223 |
Глупый вопрос - а сама программа есть в папке с программой? Попробуй (в качестве эксперимента) эти - MFC80U.DLL MSVCP80.DLL MSVCR80.DLL в %WINDOWS%/System32 бросить Это сообщение отредактировал(а) xvr - 31.5.2009, 09:15 |
|||
|
||||
| Fobos |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 9.2.2008 Где: Москва Репутация: нет Всего: нет |
Скинул библиотеки в папку system32 тоже не помогло. Может выложить файл, кто-нибудь сам посмотрит или в связи с эпидемиями вирусов такой вариант не прокатит, могу в исходниках выложить чтобы была возможность саоммоу скомпилировать.
|
|||
|
||||
| Cheloveck |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1578 Регистрация: 26.7.2008 Где: Тула Репутация: нет Всего: 32 |
Fobos, скинуть библиотеки мало, они регятся в системе ещё. Поставь vc redistributable своей версии
-------------------- ![]() |
|||
|
||||
| Fobos |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 9.2.2008 Где: Москва Репутация: нет Всего: нет |
Зарегистрировать их не получилось, выскакивает сообщение Runtime error, неправльное обращение с библиотеке выполнения С.
Слушайте, но проблема с которой я сталкиваюсь должна встречаться всем кто пишет программы не только для себя( у него-то понятно она запустится). Не может быть чтобы на этом форуме никто больше не сталкивался с этой проблемой. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: COM/DCOM/ActiveX/ATL/CORBA | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |