Форум: "WinAPI";
Текущий архив: 2006.04.16;
Скачать: [xml.tar.bz2];
Внизполучить данные из lib/dll Найти похожие ветки
← →
yaJohn (2006-01-27 17:18) [0]Есть библиотека доступная в виде dll и lib (есть еще exp файл). Есть заголовочные файлы и даже *.c исходники.
В *.h файле декларированны константы, например:
extern SpeexMode speex_nb_mode;
SpeexMode - структура. Само собой в *.c есть speex_nb_mode, например:SpeexMode speex_nb_mode = {
&nb_mode,
nb_mode_query,
.......
};
Вопрос: можно ли получить запоненную структуру из ДЛЛ?
Если нет - как "подцепить" lib файл? Нашел в инете, что его нужно "порезать" на obj с помощью COFF2OMF.EXE, но... Где взять COFF2OMF.EXE если нет bc++, и как получить доступ к данным в obj?
3.bI. Ссори, если вопросы дурацкие.
← →
Игорь Шевченко © (2006-01-27 17:29) [1]LoadLibrary+GetProcAddress + Move
← →
yaJohn (2006-01-27 17:53) [2]Гхм... интересная идея.
Но GetProcAddress отвечает nill
← →
Игорь Шевченко © (2006-01-27 17:58) [3]yaJohn (27.01.06 17:53) [2]
Тогда никак :)
← →
yaJohn (2006-01-27 18:06) [4]Мда, и tdump говорит что такие имена dll_кой не экспотируются :(
Ок. Если вернутся к вопросу о LIB...
Как подцепить ее?
← →
Игорь Шевченко © (2006-01-27 20:40) [5]yaJohn (27.01.06 18:06) [4]
Так если не экспортируются, какой смысл цеплять ? В LIB для DLL обычно только ссылки на экспортируемые функции.
← →
palva © (2006-01-27 23:50) [6]> Но GetProcAddress отвечает nill
А какое имя вы хотите экспортировать? Если speex_nb_mode, то скорее всего nil и получите. Обычно надо добавлять подчеркивание впереди, типа _speex_nb_mode, но экспортируемое имя может быть каким угодно
> Если вернутся к вопросу о LIB... Как подцепить ее?
lib не цепляется динамически, она используется при линковке программой ilink32 в языке C. А для паскаля lib бесполезен, тем более, что имеет место [5]
← →
Eraser © (2006-01-28 00:03) [7]
> yaJohn (27.01.06 18:06) [4]
> Ок. Если вернутся к вопросу о LIB...
> Как подцепить ее?
Пример:
implementation
{** link zlib code **********************************************************}
{$L zlib/deflate.obj}
{$L zlib/inflate.obj}
{$L zlib/inftrees.obj}
{$L zlib/infback.obj}
{$L zlib/inffast.obj}
{$L zlib/trees.obj}
{$L zlib/compress.obj}
{$L zlib/adler32.obj}
{$L zlib/crc32.obj}
...
{** deflate routines ********************************************************}
function deflateInit_(var strm: TZStreamRec; level: Integer; version: PChar;
recsize: Integer): Integer;
external;
function deflateInit2_(var strm: TZStreamRec; level, method, windowBits,
memLevel, strategy: Integer; version: PChar; recsize: Integer): Integer;
external;
function deflate(var strm: TZStreamRec; flush: Integer): Integer;
external;
function deflateEnd(var strm: TZStreamRec): Integer;
external;
и т.д.
← →
Eraser © (2006-01-28 00:05) [8]
> Eraser © (28.01.06 00:03) [7]
упс... не то... попутал с obj :-p
← →
palva © (2006-01-28 00:32) [9]Eraser © (28.01.06 00:03) [7]
Ну да, это можно. Раздергать lib на объектники при помощи tlib, а потом присоединять. Но хорошо, если объектники не потянут за собой сишные библиотеки, а если потянут? В данном случае lib фактически не содержит кода. Единственное полезное, что там может быть это номер, если имя экспортируется по номеру. Но номера при экспорте - это устаревшая технология.
← →
Eraser © (2006-01-28 00:40) [10]
> palva © (28.01.06 00:32) [9]
и то верно.
В любом случае лучше родные технологии использовать.
← →
OldNaum © (2006-01-28 07:06) [11]<offtop>
Eraser © (28.01.06 00:03) [7]
жутко знакомый текст, случаем не pngimage? :)
</offtop>
← →
Eraser © (2006-01-28 12:48) [12]
> OldNaum © (28.01.06 07:06) [11]
неа!
ZLib :-)
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2006.04.16;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.063 c