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

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

<< . 1 . 2 .

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


Дата: Сен 1, 2003 23:12:06

stres

msvcrt.dll используется самой FMOD.DLL.


Дата: Сен 2, 2003 06:59:04

stres
1) Со статическими и не статическим разобрался, но как мне прикрепить этот fmod чтобы размер остался не большим (когда я сделал EXE файл из того, что Вы мне прислали у меня получилось 560 кб)
Этот размер примерно равен размеру FMOD.DLL + муз. файл + сама программа. Радикального решения данной проблемы нет. Могу посоветовать только три частичных варианта:

  1. Подобрать музыкальный файл меньшего размера. Возможный выигрыш в размере не составит больше нескольких Кб.
  2. Воспользоваться PE Tools -> PE Rebuilder. Выигрыш будет ОЧЕНЬ заметным (до 40%).
  3. Воспользоваться пакером (вроде UPX).

Где я могу взять описание (где применяются) всех *.lib?
Нету такого. Обычно программеры находят описание некоторой функции в MSDN или справочнике от Borland C++, смотрят к какой DLL принадлежит эта функция и подбирают LIB с похожим именем.


Дата: Сен 2, 2003 23:00:37 · Поправил: stres

Ответ Quantum
fmod_test.exe – 559,6 кб

fmod.lib - 623,8 кб
msvcrt.lib – 189,6 кб
muzika.xm – 37,5 кб
код самой проги - 2-4 кб
-------
сумма = 852 кб
сумма (без msvcrt.lib) = 663 кб

Похоже, что всё-таки далеко не всё берётся из lib!

Применил PE TOOLS (Rebuilder PE) - 321 кб (с таким типом программ впервые столкнулся, ещё раз спасибо)
Применил upx – 132 кб уже радует (спасибо за совет с пакером) Упаковывать после
Rebuilder PE не имеет смысла, получается байт в байт, как если бы просто применить пакер.

Возвращаясь к теме маленьких размеров различных crack-ов я прихожу к выводу:
Использованы нестатические переходники, где реализованы простейшие функции воспроизведения только для одного формата аудио данных (например: xm).
Нашёл на www.fmod.org файл minifmod там был minifmod.lib, но с ним не работает пример. похоже, надо и minifmod.inc сменить. Найти его в инете не могу.
Вы этим minifmod занимались?

Asterix писал: “miniFMOD не умеет проигрывать ресурсы прямо из памяти!!!”
Это есть истина или нет?


Дата: Сен 2, 2003 23:15:47

stres
А я считаю так:
fmod.dll (после снятия UPX) - 281Кб
muzikz.xm - 37Кб
Код проги - 4Кб
---------------
Итого: 322Кб
Что там у вас получилось после Rebuild PE? ;-)

Кстати, вы правильно исключили msvcrt.lib, т.к. это только переходник.

Использованы нестатические переходники, где реализованы простейшие функции воспроизведения только для одного формата аудио данных (например: xm).
Совершенно верно. Если б они ещё поделились с нами своим либом...


Дата: Сен 3, 2003 00:55:08

stres

Эх, Quantum, ты всех запутал со своим статическим переходником :-)
Я бы объяснял на пальцах так, что есть lib'ы из которых код
будет прилинкован к проге в процессе компиляции, такие как
masm32.lib, fmod.lib(которая получена с помощью DLL2LiB),
но есть другие lib'ы, такие как msvcrt.lib, kernel32.lib и др.,
которые содержат необходимые для компиляции данные и только,
никакого кода в них нет, потому что динамические библиотеки
kernel32.dll, msvcrt.dll имеются в каждой системе Windows
и они будут загружены системой в процессе запуска проги.

Кстати, что касается большого размера полученного exe'шника,
то это потому что в код проги при компиляции попадает весь
код fmod.lib :(

[ stres: Asterix писал: “miniFMOD не умеет проигрывать ресурсы прямо из памяти!!!”
Это есть истина или нет?
]

По крайней мере там нет API функции, которая проигрывает ресурсы
прямо из памяти в нашем с Quantum'ом примере.
А что до keygen'ов, то в одном(известной всем команды) я наблюдал
следующее, файл с мелодией хранится в ресурсах, для проигрывания
копируется из ресурсов на диск в системную директорию, и потом
проигрывается с диска, причём после проигрывания так и остаётся
на диске, т.е. автор keygen'а не считает нужным почистить за
своей прогой.


Дата: Сен 3, 2003 01:50:03

Asterix
Эх, Quantum, ты всех запутал со своим статическим переходником :-)
Я предупредил, что это моя терминология :-) Зато человек понял! :-)

А что до keygen'ов, то в одном (известной всем команды) я наблюдал следующее [...]
А я тоже так делал (не в WINDOWS\SYTEM а в WINDOWS\TMP), когда winmm юзал.


Дата: Сен 4, 2003 20:41:07

Ответ Asterix
***fmod.lib(которая получена с помощью DLL2LiB)***
То есть с помощью программы DLL2LiB я могу получить из любого dll файл lib?
А как мне получить inc файл к этому dll.

*** По крайней мере там нет API функции, которая проигрывает ресурсы
прямо из памяти в нашем с Quantum'ом примере.***
Где там? В документации?

У вас есть inc файл к minifmod? Если есть пришлите его, пожалуйста, на мою почту (+ всё что мне по этому вопросу может мне пригодится, что бы я не донимал вас больше со своими вопросами).


Дата: Сен 5, 2003 04:36:40

[ stres: То есть с помощью программы DLL2LiB я могу получить из любого dll файл lib?
А как мне получить inc файл к этому dll.
]

Скорее всего да, но может и не из любой, это зависит насколько
безглючно написана программа DLL2LiB.
Получить inc'луд можно с помощью утилиты lib2inc из пакета
masm32, и не только, но для lib'ы полученной при помощи
незарегистрированной версии DLL2LiB inc'луд придётся
делать вручную, иначе не избежать MessageBox при вызове
функций из этой библиотеки, эту работу проделал Quantum,
а также он написал небольшой тутор, который лежит внутри
пакета с DLL2LiB, который лежит на этом сайте в разделе
"Инструменты".


[ stres: Где там? В документации?]

В minifmod.lib


[ stres: У вас есть inc файл к minifmod? Если есть пришлите его, пожалуйста, на мою почту (+ всё что мне по этому вопросу может мне пригодится, что бы я не донимал вас больше со своими вопросами).]


У меня нет. Я minifmod.lib не занимался, но о том как использовать
эту библиотеку под C написано в
"The Codebreakers Magazine-Issue #1/2003", который можно найти
на этом сайте в разделе "Документация", на английском языке.

<< . 1 . 2 .


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