| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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 | ||
Есть тулзы (например у VS - OLE/COM object viewer) которые позволяют исследовать все установленные в системе интерфейсы и выдать в виде *.idl файлов любую из установленных TypeLib. Если компонент для работы с БД установлен то все это должно быть. Достать дополнительную информацию будет проблематично. |
| Автор: N0dwis 23.1.2008, 20:16 |
| Смотрел уже. Компонент есть, TypeLib - нет. |
| Автор: xvr 23.1.2008, 21:18 | ||
Точно нет? Внутри dll с компонентом? Если нет - то труба |
| Автор: N0dwis 24.1.2008, 23:42 |
| Ну ole viewer не показал. Он откуда берет информацию, только из реестра? |
| Автор: jonie 25.1.2008, 00:29 |
| в реестре хранится только progid ну и т.п. фигня, мало дающая знать что скрывают за собой реальные GUID-ы (в плане интерфейсной части) вы можете попытаться открыть dll ку в oleview .... |
| Автор: xvr 25.1.2008, 10:15 | ||
Да. Информация о TypeLib там появится только если dll'ка ее зарегистрила. Но как правильно заметил jonie никто не мешает попробовать открыть в OleView непосредственно саму dll |
| Автор: N0dwis 25.1.2008, 12:52 |
| Похоже ничего. |
| Автор: jonie 25.1.2008, 20:09 |
| и каков результат ? и вообще если библиотека неб ольшая выкладывайте - не стесняйтесь 8) |