Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++: COM, OLE, ActiveX
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/27: Рейтинг темы: голосов - 27, средняя оценка - 4.89
kravam
быдлокодер
1711 / 898 / 106
Регистрация: 04.06.2008
Сообщений: 5,588
1

Где взять dll с классом (для дальнейшей регистрации этого класса)?

22.04.2013, 20:46. Просмотров 5231. Ответов 16
Метки нет (Все метки)

Есть программка на C#, при работе с файлом *.xlsx выдаётся такая ошибка:

---------------------------
Ошибка при считывании excel файла
---------------------------
Ошибка: Не удалось получить фабрику класса COM для компонента с CLSID {00024500-0000-0000-C000-000000000046} из-за следующей ошибки: 80040154 Класс не зарегистрирован (Исключение из HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
---------------------------
ОК
---------------------------
Пришлось штутдировать Добрынина и Роджерсона. В них есть всё, кроме: а где, собсно брать эти классы, вернее, какой стандартный алгоритм поиска? Ну то есть мне щас нужно найти dll где был бы реализован компонент с указанным CLSID; предполагаю, что там будет и его фабрика. То ли я запрос в гугл не умею составить, то ли нужная мне dll ищется как-то хитро, то ли ещё что.

Не по теме:

...В принципе я не использовал способ, который наверное сработает- поставить на машину, программу, которая работает с такими документами, наверное она называется Microsoft Office; предполагаю, что её инсталятор регистрирует в том числе и этот класс. Но неохота ради одной dll-ки, ставить программу, тем более, что вроде как она особо и не нужна- файлы *.xlsx на раз открываются другой программой- OpenOffice.

0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.04.2013, 20:46
Ответы с готовыми решениями:

Затупил, скажите где взять libmysqld.dll, libmysqld50.dll, libmysqld51.dll
Вечер добрый, ставлю ZEOS на Delphi 7, и для нормальной работы нужны файлы libmysqld.dll,...

Где взять Dll для работы с шлагбаумами или автоматическими воротами
Подскажите пожалуйста есть ли библиотека для работы с шлагбаумами? Поиск по интернету ни чего не...

Переключите элементы strong с классом some в состояние без этого класса
Переключите элементы strong с классом some в состояние без этого класса, а тем элементам (strong),...

Где взять библиотеки JSCore.dll и WebKitCore.dll
Доброго времени суток. Скачал ExpressoBrowser-master, пытаюсь запустить через SharpDevelop 4.4,...

Народ! А кто знает где взять Help по InfoZip библиотекам UnZip32.dll & Zip32.dll?
Народ! А кто знает где взять Help по InfoZip библиотекам UnZip32.dll & Zip32.dll?

16
MrCold
862 / 760 / 174
Регистрация: 11.01.2012
Сообщений: 1,942
22.04.2013, 22:12 2
kravam,
такая же ошибка была, когда пытался работать с MS Word через C#.
На компе был установлен Microsoft Office Starter
Пришлось установить полный пакет Microsoft Office .Тогда заработало .
0
kravam
быдлокодер
1711 / 898 / 106
Регистрация: 04.06.2008
Сообщений: 5,588
22.04.2013, 22:17  [ТС] 3
Ну так вот надо с этим разобраться, я конечно интереса ради могу поэксперементировать- поставить Microsoft Office, попробовать изменить изменения раздела реестра HKEY_CLASSES_ROOT\CLSID... Нет, я конечно рад поковыряться, но сейчас не тот случай. Может, этот велосипед давно усовершенствован.
0
MrCold
862 / 760 / 174
Регистрация: 11.01.2012
Сообщений: 1,942
22.04.2013, 22:48 4
Цитата Сообщение от kravam Посмотреть сообщение
нужно найти dll
Да, не сказал,
для работы с MS Excel, проект должен ссылаться на Interop.Microsoft.Office.Interop.Excel.dll

kravam, наверно о ней речь ?
0
22.04.2013, 22:48
vxg
Модератор
3287 / 2082 / 329
Регистрация: 13.01.2012
Сообщений: 8,104
23.04.2013, 14:14 5
Цитата Сообщение от kravam Посмотреть сообщение
а где, собсно брать эти классы, вернее, какой стандартный алгоритм поиска
эти классы должны быть на вашей машине. искать их будет система. если система их не находит вы видите это сообщение. побороть это можно установив нужные программе компоненты на компьютер. вырезание из офиса потрохов вроде MSO.DLL ни к чему хорошему не приведет ни в плане легальности таких фокусов ни в плане мук сопровождающих процесс запуска усеченного набора потрахов.
0
kravam
быдлокодер
1711 / 898 / 106
Регистрация: 04.06.2008
Сообщений: 5,588
23.04.2013, 15:59  [ТС] 6
Цитата Сообщение от vxg Посмотреть сообщение
побороть это можно установив нужные программе компоненты на компьютер
Я это и сам знаю, так их прежде надо где-то взять, а где?
0
vxg
Модератор
3287 / 2082 / 329
Регистрация: 13.01.2012
Сообщений: 8,104
23.04.2013, 16:04 7
очевидно, их нужно взять там куда указывает документация к программному обеспечению которое у вас не работает. я так понимаю, что там написано что-то вроде: требуется установка MSO
0
kravam
быдлокодер
1711 / 898 / 106
Регистрация: 04.06.2008
Сообщений: 5,588
23.04.2013, 17:50  [ТС] 8
А документации и нет никакой. Есть просто исходники и всё.
0
vxg
Модератор
3287 / 2082 / 329
Регистрация: 13.01.2012
Сообщений: 8,104
23.04.2013, 17:58 9
Цитата Сообщение от kravam Посмотреть сообщение
А документации и нет никакой. Есть просто исходники и всё.
не смешно.
в этой ситуации надо принимать цианид. представьте перед вами проект в котором создается COM-объект с
ProgID=akKJHKLJHkljHKJlk
классно, правда? нет вообще никакой надежды что вы поймете что же это за дряной компонент и откуда его можно скачать. тут у вас хотя бы есть зацепка - кулибины написавшие исходник явно обращались к офису - значит нужный вам компонент лежит в офисе. если его нет в обрезанном офисе поставьте полный (или для начала сходите в другую комнату где есть полный офис и запустите программу там).
0
kravam
быдлокодер
1711 / 898 / 106
Регистрация: 04.06.2008
Сообщений: 5,588
23.04.2013, 19:23  [ТС] 10
Так я и сам знаю, что есть офис и что нужная мне херь есть в офисе. Я спрашиваю, как мне её получить МИНУЯ установку офиса?

Блин, если мне нужна dll-ка X, я не справляюсь, какая программа использует эту dll-ку и уж тем более не устанавливаю эту программу в надежде на то, что к ней паровозом идёт эта dll-ка. Я набираю в гугле
dllka.dll скачать
Ну и качаю. Недавно так сделал
Тут же поступило предложение скачать офис.
vxg, если больше предложений нет, то давайте послушаем, что скажут другие ребята.

Добавлено через 46 минут
ProgID=akKJHKLJHkljHKJlk
ЭТо -то как раз и не страшно. ВСе dll-Ки имеют страшные имена. Но дело-то не в имени, оно может быть сколь угодно осмысленным/неосмысленным (хотя первое, конечно, лучше). Важно, чтобы оно было УНИКАЛЬНЫМ. И вот эта-то уникальность и присутствует в CLSIDE, напомню
00024500-0000-0000-C000-000000000046
Следовательно, если и искать по какому идентификатору, то именно по CLSIDу, а не по ProgID, что я и собираюсь сделать. Вы же мне в укор ставите поиск по ProgID; на каком основании, позвольте спросить?
0
vxg
Модератор
3287 / 2082 / 329
Регистрация: 13.01.2012
Сообщений: 8,104
24.04.2013, 08:58 11
Цитата Сообщение от kravam Посмотреть сообщение
как мне её получить МИНУЯ установку офиса
Цитата Сообщение от kravam Посмотреть сообщение
набираю в гугле
Цитата Сообщение от kravam Посмотреть сообщение
и качаю
фокус в том, что эта dll-ка скорее всего зависит от неслабого количества других dll-ок, а те в свою очередь от ужасающего количества третьих + все это хозяйство использует различного рода файлы с конфигурациями, плагины, ветки реестра, настройки пользователя и прочие потроха являясь в сумме тем, что вам сказали - MSO.
Цитата Сообщение от kravam Посмотреть сообщение
Вы же мне в укор ставите поиск по ProgID
тут видимо у нас недопонимание. я привел пример когда мы имеем исходники в которых производится создание COM-объекта с неизвестным в природе ProgID или CLSID и сам этот компонент не распространяется с исходниками и не фигурирует в документации. вот тогда, если ProgID не вызывает у нас никаких ассоциаций, а CLSID не может найти google мы в большой беде ибо нет абсолютно никакого способа дознаться что это за компонент.
0
kravam
быдлокодер
1711 / 898 / 106
Регистрация: 04.06.2008
Сообщений: 5,588
24.04.2013, 09:09  [ТС] 12
У меня раньше была ситуация, что я скачал программу и не был зарегистрирован класс, вообще не к чему было привязаться было, кроме CLSIDа. Я не знаю, как вы догадались, что мне нужен MSO (очень может быть), наверное из-за этого
Цитата Сообщение от kravam Посмотреть сообщение
*.xlsx выдаётся такая ошибка:
,

И всё. И я вынужден повторить свой вопрос, который в первом посту прозвучал- как мне найти класс с CLSID-ом таким-то, если к документации к проге ничё не прописано, да и самой документации нет. Как щас помню программа была чекер дедиков.

Добавлено через 1 минуту
Цитата Сообщение от vxg Посмотреть сообщение
а CLSID не может найти google
Так он может быть и может, но может есть архив какой-то этих CLSID-ов, может я просто искать не умею.
0
vxg
Модератор
3287 / 2082 / 329
Регистрация: 13.01.2012
Сообщений: 8,104
24.04.2013, 09:35 13
Цитата Сообщение от kravam Посмотреть сообщение
как мне найти класс с CLSID-ом таким-то, если к документации к проге ничё не прописано, да и самой документации нет
это невозможно. во всяком случае стандартной процедуры не существует. нет никакого всемирного реестра объектов.
Цитата Сообщение от kravam Посмотреть сообщение
есть архив
нет такого.
=======
на моей машине в реестре под CLSID=00024500-0000-0000-C000-000000000046 живет Microsoft Excel Application, ProgID = Excel.Application.14, LocalServer=C:\PROGRA~1\MICROS~4\Office14\EXCEL.EXE /automation
чудес не бывает - ваша прога требует MSO (MicroSoft Office)
2
kravam
быдлокодер
1711 / 898 / 106
Регистрация: 04.06.2008
Сообщений: 5,588
24.04.2013, 09:42  [ТС] 14
Даже неинтересно стало. MSO и дурак поставит. Ты попробуй разобраться, как искать компонент, о котором известен только CLSID!
0
vxg
Модератор
3287 / 2082 / 329
Регистрация: 13.01.2012
Сообщений: 8,104
24.04.2013, 09:56 15
Цитата Сообщение от kravam Посмотреть сообщение
попробуй разобраться, как искать компонент, о котором известен только CLSID
очевидно, в поисковой машине. ввод вашего CLSID в google приводит к выдаче страницы первый же результат на которой http://support.microsoft.com/kb/292491/ru ведет нас к ответу на вопрос что это за объект
Цитата Сообщение от kravam Посмотреть сообщение
попробуй разобраться, как искать компонент, о котором известен только CLSID
как уже сказано - если не в документах (те кто пишут ПО должны знать что за компоненты они используют), то только в поисковой машине - глобального реестра объектов не существует. относительно "плохого" решения о частичной установке продукта с целью попытаться поселить в свою систему нужный объект сказано выше.
0
kravam
быдлокодер
1711 / 898 / 106
Регистрация: 04.06.2008
Сообщений: 5,588
24.04.2013, 10:18  [ТС] 16
Цитата Сообщение от vxg Посмотреть сообщение
очевидно, в поисковой машине. ввод вашего CLSID в google приводит к выдаче страницы первый же результат на которой http://support.microsoft.com/kb/292491/ru ведет нас к ответу на вопрос что это за объект
Да я уж понял, что если я поставлю MSO, то всё будет круто. Вопрос в том, ОБЯЗАТЕЛЬНО ЛИ ставить MSO, чтобы всё было круто? Хотя вы сказали, что обязательно. Непонятно только почему.

Вот если бы по той ссыли было сказано- "компонент 00024500-0000-0000-C000-000000000046 сделан НАМИ", вопрос можно было бы считать чуть продвинутым. Ага, если кто-то отмечает своё авторство компонента, то, может отмечают и все остальные?

Пока же читаю, что 00024500-0000-0000-C000-000000000046 просто необходим для MSO, даже, строго говоря, я не могу с уверенностью утверждать, что MSO устанавливает этот компонент, пока не попробую.
0
vxg
Модератор
3287 / 2082 / 329
Регистрация: 13.01.2012
Сообщений: 8,104
24.04.2013, 10:33 17
Цитата Сообщение от kravam Посмотреть сообщение
ОБЯЗАТЕЛЬНО ЛИ ставить MSO, чтобы всё было круто
как я понял вы человек правильный, все хотите делать так как нужно, поэтому для вас - строго обязательно. причина: распространение частей офиса незаконно, получение работоспособного комплекса из частей офиса сопряжено с определенными сложностями.
Цитата Сообщение от kravam Посмотреть сообщение
я не могу с уверенностью утверждать, что MSO устанавливает этот компонент
этот компонент и есть MSO. точнее это Excel. еще точнее - сборка Excel с автоматизацией.
0
24.04.2013, 10:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.04.2013, 10:33

Взять текст из текстового файла и поместить его в массив для дальнейшей обработки массива
добрый день уважаемые форумчане! Подскажите новичку в программировании, как можно взять текст из...

Где размещать объявления класса, чтобы объекты этого класса можно объявлять в нескольких Form
Вопрос тупой. Так получилось, что надо написать прогу в Visual C# вместо билдера. Где размещать...

Где взять GD .dll?(+)
Есть у кого библиотека под винду GD? Желательно старую, с поддержкой gif, хотя это в принципе не...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru