А>Есть 3 библиотеки от заказчика. язык с++ как понимаете, но описаний к библиотеки нет. А>Чем можно посмотреть прототипы функций, типы данных, объявленные в библиотеки ?
Че, хедеров в комплекте нет, что ль?
Если это COM библиотеки, то можно посмотреть, например, утилитой OleView из MS Visual Studio.
Если нет — то бамбук...
Здравствуйте, _Ursus_, Вы писали:
А>>Есть 3 библиотеки от заказчика. язык с++ как понимаете, но описаний к библиотеки нет. А>>Чем можно посмотреть прототипы функций, типы данных, объявленные в библиотеки ?
_U_>Че, хедеров в комплекте нет, что ль? _U_>Если это COM библиотеки, то можно посмотреть, например, утилитой OleView из MS Visual Studio. _U_>Если нет — то бамбук...
Ну не совсем бамбук. Бамбук это когда имена декорированые, а вот когда нет то надо искать как декорируется имена для функций разных конвенций, и ещё надо знать каким компилятором dll была собрана.
А>Есть 3 библиотеки от заказчика. язык с++ как понимаете, но описаний к библиотеки нет.
К ней же хидеры должны поставляться. Если хидеров нет, то нафиг такую библиотеку.
Здравствуйте, nen777w, Вы писали:
N>Ну не совсем бамбук. Бамбук это когда имена декорированые, а вот когда нет то надо искать как декорируется имена для функций разных конвенций, и ещё надо знать каким компилятором dll была собрана.
Автор вообще понял, что сказал??
Если имена НЕдекорированные, то из них никакой инфы о типах и параметрах не вытянешь.
А если декорированные — то достаточно прогнать хорошим дизассемблером типа IDA, чтобы увидеть расшифрованные сигнатуры функций. Причем IDA, как правило, сама в состоянии определить, каким компилятором это барахло сделано.
Но топикстартеру нужны ведь еще и объявления типов, а эту инфу просто так из DLL не воостановишь.
Здравствуйте, Аноним, Вы писали:
А>сразу скажу, что я этим никогда раньше не занимался. А>Есть 3 библиотеки от заказчика. язык с++ как понимаете, но описаний к библиотеки нет. А>Чем можно посмотреть прототипы функций, типы данных, объявленные в библиотеки ?
Список экспортируемых ф-ций можно посмотреть Dependency Walker'ом (depends.exe), который идет вместе со студией.
А вообще, лучше (или даже нужно) у заказчика взять хедеры.
Re[2]: чем посмотреть содержание dll библиотеки ?
От:
Аноним
Дата:
23.12.08 08:10
Оценка:
_U_>Че, хедеров в комплекте нет, что ль?
Нашелся header-файл. Но с ним интересная ситуация: header-файл один, а dll-ек много.
Как теперь мне правильно работать ? подключить файл header-а в свои файлы:
#include "header.h"
а dll-ки закинуть в папку Debug ? это правильно ? а потом вызывать функции, описанные в хэдере ? но найдет ли он их ?
_U_>Если это COM библиотеки, то можно посмотреть, например, утилитой OleView из MS Visual Studio. _U_>Если нет — то бамбук...
OleView не смотрятся, впрочем как и Object browser (из 2008 студии).
камыш.
Здравствуйте, Аноним, Вы писали:
А>Нашелся header-файл. Но с ним интересная ситуация: header-файл один, а dll-ек много.
Ну это еще не смертельно. В Win32 тоже не для всякой DLL есть свой h-файл
А>Как теперь мне правильно работать ? подключить файл header-а в свои файлы:
А>
А>#include "header.h"
А>
Да, только не на C#
А>а dll-ки закинуть в папку Debug ? это правильно ? а потом вызывать функции, описанные в хэдере ? но найдет ли он их ?
Еще нужен файл .lib. Его добавляешь в проект. Если его нет — остается вызывать функции через LoadLibrary- GetProcAddress. Но он должен быть.
With best regards
Pavel Dvorkin
Re[4]: чем посмотреть содержание dll библиотеки ?
От:
Аноним
Дата:
23.12.08 09:57
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:
А>>
А>>#include "header.h"
А>>
PD>Да, только не на C#
Плюсовских тэгов снизу не увидел.
[c++]
// ща попробуем
[/c++]
PD>Еще нужен файл .lib. Его добавляешь в проект. Если его нет — остается вызывать функции через LoadLibrary- GetProcAddress. Но он должен быть.
да, lib файл есть. Просто добавить в проект как любой другой файл ?
Здравствуйте, Аноним, Вы писали:
А>Плюсовских тэгов снизу не увидел.
лучше cpp или ccode
А>
А>// ща попробуем
// предпросмотр ащще рулит..
А>
PD>>Еще нужен файл .lib. Его добавляешь в проект. Если его нет — остается вызывать функции через LoadLibrary- GetProcAddress. Но он должен быть. А>да, lib файл есть. Просто добавить в проект как любой другой файл ?
подключаешь через настройки проекта .lib, #include-шь хидер, dll-ка нужна будет для запуска..