Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: COM/DCOM/ActiveX/ATL/CORBA > Работа с COM без файлов описаний


Автор: N0dwis 23.1.2008, 10:56
Объясняю ситуацию - в нашей организации используется довольно экзотическая БД.
Есть клиенты для dos и windows, работающие с ними. Для создания программ, работающих с этими БД используется SDK, написанное какой-то фирмой. SDK для dos у меня есть, для windows - нет.
windows-версия использует для работы с бд COM-компонент. Описания к нему у меня, как я уже сказал, нет, т.е. GUID интерфейсов неизвестны.
Структура всех баз данных одинаковая для dos и windows, все клиенты работают с одними и теми же базами.
Можно ли с помощью этой информации получить доступ к бд из своих программ под windows, по dos на XP писать уж очень неудобно, да и с использованием потом маразм.
Спасибо.

Автор: Lazin 23.1.2008, 11:02
без GUID доступ получить не получится, нужно обязательно поковырять ветку реестра HKEY_CLASSES_ROOT на предмет GUID

Автор: N0dwis 23.1.2008, 11:35
Ну это я вроде нашел, а дальше что?
Я могу предположить на основании досовской SDK, какие методы предоставляет интерфейс, но однозначно же я восстановить его не смогу!

Автор: N0dwis 23.1.2008, 12:08
Не, похоже дохлый номер... Дизассемблировал одну программку - сильно отличается использование SDK для DOS и Windows. В первую очередь параметрами функций. Я их не знаю...

Автор: xvr 23.1.2008, 14:23
Цитата(N0dwis @ 23.1.2008,  10:56)
Объясняю ситуацию - в нашей организации используется довольно экзотическая БД.
Есть клиенты для dos и windows, работающие с ними. Для создания программ, работающих с этими БД используется SDK, написанное какой-то фирмой. SDK для dos у меня есть, для windows - нет.
windows-версия использует для работы с бд COM-компонент. Описания к нему у меня, как я уже сказал, нет, т.е. GUID интерфейсов неизвестны.
Структура всех баз данных одинаковая для dos и windows, все клиенты работают с одними и теми же базами.
Можно ли с помощью этой информации получить доступ к бд из своих программ под windows, по dos на XP писать уж очень неудобно, да и с использованием потом маразм.
Спасибо.

Есть тулзы (например у VS - OLE/COM object viewer) которые позволяют исследовать все установленные в системе интерфейсы и выдать в виде *.idl файлов любую из установленных TypeLib. Если компонент для работы с БД установлен то все это должно быть. Достать дополнительную информацию будет проблематично.


Автор: N0dwis 23.1.2008, 20:16
Смотрел уже. Компонент есть, TypeLib - нет.

Автор: xvr 23.1.2008, 21:18
Цитата(N0dwis @ 23.1.2008,  20:16)
Смотрел уже. Компонент есть, TypeLib - нет.

Точно нет? Внутри dll с компонентом? Если нет - то труба  smile 

Автор: N0dwis 24.1.2008, 23:42
Ну ole viewer не показал. Он откуда берет информацию, только из реестра?

Автор: jonie 25.1.2008, 00:29
в реестре хранится только progid ну и т.п. фигня, мало дающая знать что скрывают за собой реальные GUID-ы (в плане интерфейсной части)

вы можете попытаться открыть dll ку в oleview ....

Автор: xvr 25.1.2008, 10:15
Цитата(N0dwis @ 24.1.2008,  23:42)
Ну ole viewer не показал. Он откуда берет информацию, только из реестра?

Да. Информация о TypeLib там появится только если dll'ка ее зарегистрила. Но как правильно заметил jonie никто не мешает попробовать открыть в OleView непосредственно саму dll

Автор: N0dwis 25.1.2008, 12:52
Похоже ничего.

Автор: jonie 25.1.2008, 20:09
и каков результат ? и вообще если библиотека неб ольшая выкладывайте - не стесняйтесь 8)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)