Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.16;
Скачать: CL | DM;

Вниз

получить данные из 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 вся ветка

Текущий архив: 2006.04.16;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.029 c
2-1143534311
Sw
2006-03-28 12:25
2006.04.16
Путь к БД


15-1143178950
Некто
2006-03-24 08:42
2006.04.16
Одна таблица или две?


8-1131809965
Jimmy
2005-11-12 18:39
2006.04.16
Сохранение bmp файла из image с нужным dpi


2-1143632624
apic
2006-03-29 15:43
2006.04.16
Уважаемые мастера, ПАМАГИТЕ!!!!!!!!!!!!!


15-1142018122
Костя
2006-03-10 22:15
2006.04.16
Архивация