чем посмотреть содержание dll библиотеки ?
От: Аноним  
Дата: 22.12.08 16:37
Оценка:
сразу скажу, что я этим никогда раньше не занимался.

Есть 3 библиотеки от заказчика. язык с++ как понимаете, но описаний к библиотеки нет.

Чем можно посмотреть прототипы функций, типы данных, объявленные в библиотеки ?
Re: чем посмотреть содержание dll библиотеки ?
От: _Ursus_  
Дата: 22.12.08 16:54
Оценка:
А>Есть 3 библиотеки от заказчика. язык с++ как понимаете, но описаний к библиотеки нет.
А>Чем можно посмотреть прототипы функций, типы данных, объявленные в библиотеки ?

Че, хедеров в комплекте нет, что ль?
Если это COM библиотеки, то можно посмотреть, например, утилитой OleView из MS Visual Studio.
Если нет — то бамбук...
Re[2]: чем посмотреть содержание dll библиотеки ?
От: nen777w  
Дата: 22.12.08 16:56
Оценка:
Здравствуйте, _Ursus_, Вы писали:

А>>Есть 3 библиотеки от заказчика. язык с++ как понимаете, но описаний к библиотеки нет.

А>>Чем можно посмотреть прототипы функций, типы данных, объявленные в библиотеки ?

_U_>Че, хедеров в комплекте нет, что ль?

_U_>Если это COM библиотеки, то можно посмотреть, например, утилитой OleView из MS Visual Studio.
_U_>Если нет — то бамбук...

Ну не совсем бамбук. Бамбук это когда имена декорированые, а вот когда нет то надо искать как декорируется имена для функций разных конвенций, и ещё надо знать каким компилятором dll была собрана.
Re: чем посмотреть содержание dll библиотеки ?
От: Vamp Россия  
Дата: 22.12.08 18:36
Оценка:
А>Есть 3 библиотеки от заказчика. язык с++ как понимаете, но описаний к библиотеки нет.
К ней же хидеры должны поставляться. Если хидеров нет, то нафиг такую библиотеку.
Да здравствует мыло душистое и веревка пушистая.
Re[3]: чем посмотреть содержание dll библиотеки ?
От: _Ursus_  
Дата: 22.12.08 19:43
Оценка: +2
Здравствуйте, nen777w, Вы писали:

N>Ну не совсем бамбук. Бамбук это когда имена декорированые, а вот когда нет то надо искать как декорируется имена для функций разных конвенций, и ещё надо знать каким компилятором dll была собрана.


Автор вообще понял, что сказал??
Если имена НЕдекорированные, то из них никакой инфы о типах и параметрах не вытянешь.
А если декорированные — то достаточно прогнать хорошим дизассемблером типа IDA, чтобы увидеть расшифрованные сигнатуры функций. Причем IDA, как правило, сама в состоянии определить, каким компилятором это барахло сделано.
Но топикстартеру нужны ведь еще и объявления типов, а эту инфу просто так из DLL не воостановишь.
Re: чем посмотреть содержание dll библиотеки ?
От: sc Россия  
Дата: 22.12.08 19:59
Оценка:
Здравствуйте, Аноним, Вы писали:

А>сразу скажу, что я этим никогда раньше не занимался.

А>Есть 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 студии).
камыш.
Re[3]: чем посмотреть содержание dll библиотеки ?
От: Pavel Dvorkin Россия  
Дата: 23.12.08 09:04
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Нашелся 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 файл есть. Просто добавить в проект как любой другой файл ?
Re[5]: чем посмотреть содержание dll библиотеки ?
От: neFormal Россия  
Дата: 23.12.08 10:47
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Плюсовских тэгов снизу не увидел.


лучше cpp или ccode

А>
А>// ща попробуем
// предпросмотр ащще рулит..
А>



PD>>Еще нужен файл .lib. Его добавляешь в проект. Если его нет — остается вызывать функции через LoadLibrary- GetProcAddress. Но он должен быть.

А>да, lib файл есть. Просто добавить в проект как любой другой файл ?

подключаешь через настройки проекта .lib, #include-шь хидер, dll-ка нужна будет для запуска..

ЗЫЖ а эта библиотека — mysql?. +)
...coding for chaos...
Re[5]: чем посмотреть содержание dll библиотеки ?
От: Pavel Dvorkin Россия  
Дата: 23.12.08 11:41
Оценка:
Здравствуйте, Аноним, Вы писали:

А>да, lib файл есть. Просто добавить в проект как любой другой файл ?


Да. Будет задан вопрос про Custom Rule, ответь No
With best regards
Pavel Dvorkin
Re[6]: чем посмотреть содержание dll библиотеки ?
От: Аноним  
Дата: 24.12.08 06:44
Оценка:
Здравствуйте, neFormal, Вы писали:

F>лучше cpp или ccode


а, ну да, забываю все время про него

F>// предпросмотр ащще рулит..


но не на медленном интернете.

F>ЗЫЖ а эта библиотека — mysql?. +)


Не, "железячная" библиотека +)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.