· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.WIN32 —› DLL2LiB

. 1 . 2 . 3 . >>

Посл.отвђт Сообщенiе


Дата: Июл 6, 2003 14:06:38 · Поправил: Asterix

Кто-нибудь знает как пользоваться этой прогой применительно
к masm'у? Или может где-то есть статья на эту тему?
Что-то у меня ничего не получается при конвертации fmod.dll :(


Дата: Июл 6, 2003 20:58:55

Ты знаешь, я и не думал, что это возможно. Надо будет потом поиграться. Когда-нибудь...


Дата: Июл 7, 2003 00:18:01 · Поправил: Asterix

Сообщи потом результаты :-)
А вообще я встречал статью на эту тему, но под C, но у меня
ничего путного по ней не получилось :-(


Дата: Июл 7, 2003 01:34:14 · Поправил: volodya

Я тут еще немного подумал. Ты знаешь, ничего особенного здесь нет. Возьми длл, возьми ее директорию экспорта, присовокупи к этому знание lib-формата, вытащи немного добавочной информации из файла (ресурсы и т.п.). Запихни это все в результируемый файл и всего делов. Меня смущало то, откуда прога берет прототипы, т.е. данные о ТИПАХ передаваемых параметров, но и тут все ясно. Это ее не волнует! И даже если ты сделаешь lib-файл из dll, то и что с того? Всю остальную инфу тебе придется смотреть ручками и выковыривать из файла путем дизассемблирования, отладки, и т.д., и т.п. Словом, вот чего я надумал.


Дата: Июл 7, 2003 02:05:52

Убрать "-defaultlib:LIBC -defaultlib:OLDNAMES" из Link Options.

Создать пустой либ для импорта (как в той статье по инвокабельным библиотекам) и добавить его в Import Lib Files for the DLL.

При всём этом ошибок становится меньше :) Разбираю дальше...


Дата: Июл 7, 2003 02:30:24

volodya
Что-то больно мудрёно написал :-), требует длительного осмысления :-)
Прога должна автоматом генерить статическую lib'у, я так понимаю
вида masm32.lib. Lib'у то она генерит, но ещё генерит и C-шный
хидерник, вот я и не пойму, а нафига он мне в masm'е, само-собой
к проге есть help и примеры, но я их что-то не догоняю, т.к. оно на
английском :-(


Дата: Июл 7, 2003 03:03:16 · Поправил: volodya

Что-то больно мудрёно написал :-), требует длительного осмысления :-)

Звыняй, хлопцю! :)

Теперь, что до хидера. Тебе он, еснно, ни на фиг не нужен! Опять таки, тут все просто. Они могут выстрипать из длл все экспортные функции, да, это так! Переконвертить их в либ, да, и это так. Но скажи мне: КАК ОНИ МОГУТ УЗНАТЬ ИНФОРМАЦИЮ О ПАРАМЕТРАХ ФУНКЦИЙ????? Ответ: НИКАК!!!! Элементарно по характеру замангления имени выяснить, сколько параметров принимает функция, но вот ТИПЫ параметров - никогда и ни за что! Поэтому могу лишь повторить - копать информацию о типах параметров тебе придется самому.

Quantum

Шаманишь помаленьку? Там опцию уберу, там оставлю :)


Дата: Июл 7, 2003 03:07:12

Посему, исходя из того, что написано выше, хидерник смело выбрасываешь, от него толку чуть. Вводишь в установки линкера добавить эту библиотеку, а потом, скрипнув зубами, начинай копать информацию о типах... Это будет долго, очень долго, очень-очень долго :(((((


Дата: Июл 7, 2003 03:29:40

Шаманишь помаленьку?
Шаманю :-)
Заработало!!!
Сконвертировал спёртый DLL в lib и потихоньку слинковал (долой копирайт), чуток подправив IAT :-) Короче, Dll2Lib рулит!


Дата: Июл 7, 2003 04:09:17 · Поправил: Asterix

volodya
По твоему получается лучше вообще на этот метод забить, и если
мне нужны из dll'ки 3-и функции то вырипать код вообще руками?,
геморно это будет!
Есть такая статья на эту тему!

Quantum
Если у тебя получилось тогда может статью на тему сабжа напишешь ;-)
Попробуй сконвертить fmod.dll и слинковать с программой что в конце
этого топика :-) Fmod.dll могу прислать.


Дата: Июл 7, 2003 05:47:59

Fmod.dll могу прислать
Кидай сюда. (DLL, lib и Inc, плиз)


Дата: Июл 7, 2003 06:03:17

Юзайте фасм...


Дата: Июл 7, 2003 06:52:33 · Поправил: Quantum

Asterix
Я уже скачал FMOD, сконвертил в статик и прицепил к твоей программе :-)

1. Распаковал FMOD (UPX)
2. Убрал "-defaultlib:LIBC - defaultlib:OLDNAMES"
3. Получил готовый lib
4. Добавил advapi32.lib, ole32.lib, winmm.lib, msacm32.lib и msvcrt.lib (!) в инклуды.
5. Переопределил ф-ции FMOD:
FSOUND_Init           -> _FSOUND_Init
FMUSIC_LoadSongMemory -> _FMUSIC_LoadSongMemory
FMUSIC_PlaySong       -> _FMUSIC_PlaySong

6. Поубирал мусор с помощью PE Tools
... слушаю s3m!
Оставь мыло

ЗЫ: Там ещё NAG-лое сообщение убрать надо.
ЗЗЫ: DllMain в данном случае не нужно вызывать.
ЗЗЗЫ: На статью, вроде, не тянет...


Дата: Июл 7, 2003 18:24:28

По твоему получается лучше вообще на этот метод забить, и если
мне нужны из dll'ки 3-и функции то вырипать код вообще руками?,
геморно это будет!
Есть такая статья на эту тему


А ты ее просмотри повнимательнее! Обрати внимание на фразу:
"From JpegLib.dll's source code, we know the pascal API for LoadJPEG is"
Т.е. я ничего не имею против dll2lib - это прикольная и явно полезная штука, но невозможного она тебе не сделает!


Дата: Июл 7, 2003 18:27:06

То что мне нужно, по крайней мере, у Quantum'а оно делает :-)

. 1 . 2 . 3 . >>


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.112