Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
4-1138295443
Святослав
2006-01-26 20:10
2006.04.16
Как программно вызвать окно настройки шрифтов?


2-1143534311
Sw
2006-03-28 12:25
2006.04.16
Путь к БД


2-1143861647
Я туплю....
2006-04-01 07:20
2006.04.16
CITRIX


2-1143730075
dubolom
2006-03-30 18:47
2006.04.16
Рисование


2-1143721329
Quattro
2006-03-30 16:22
2006.04.16
Pointer





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский