DLL

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
_Мика_
Гуру
Гуру
 
Сообщения: 1459
Зарегистрирован: 24.10.2003 (Пт) 15:05
Откуда: г. Москва, м.Речной вокзал

DLL

Сообщение _Мика_ » 01.10.2004 (Пт) 13:05

Ну наверное знаете такую DLL'ку binkw32.dll (она восновном в играх используетса для просмотра видео в фомате *.BIK). Ее можно как-то приспособить к Басику, как определить какие у нее фун-ции и как к ней обращаться. Пробовал через РЕФЕРАНС не фига! КАК?
Спаибо!
-Папа, а правда, что форумы делают людей дибилами?
-гы гы гы, сынок, лол!

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 01.10.2004 (Пт) 13:10

Ну, посмотри ее экспорт в Dependency Walker. Если найдешь функции типа DLLRegisterServer(), значит, можно подрубить библу через референсы. В твоем случае их явно нет - значит, только Declare. Только вот описание тебе найти придется...

Шурик
Самогонщик
Самогонщик
Аватара пользователя
 
Сообщения: 1657
Зарегистрирован: 30.06.2003 (Пн) 13:27
Откуда: из запоя :))))) Матных сообщений: 972

Сообщение Шурик » 01.10.2004 (Пт) 13:34

Это не то???: :?

00000001 1000F330 _BinkAudioCompressClose@4
00000002 1000E6F0 _BinkAudioCompressLock@12
00000003 1000E600 _BinkAudioCompressOpen@8
00000004 1000E750 _BinkAudioCompressUnlock@24
00000005 1000F480 _BinkAudioDecompress@20
00000006 1000F330 _BinkAudioDecompressClose@4
00000007 1000F450 _BinkAudioDecompressLock@12
00000008 1000F340 _BinkAudioDecompressOpen@12
00000009 1000F950 _BinkAudioDecompressUnlock@12
0000000A 100043E0 _BinkBufferBlit@12
0000000B 100037B0 _BinkBufferCheckWinPos@12
0000000C 10004220 _BinkBufferClose@4
0000000D 100045C0 _BinkBufferDescription@4
0000000E 10004720 _BinkBufferGetError@0
0000000F 10004280 _BinkBufferLock@4
00000010 10003A20 _BinkBufferOpen@16
00000011 100045B0 _BinkBufferSetHWND@8
00000012 10003840 _BinkBufferSetOffset@12
00000013 10003790 _BinkBufferSetResolution@12
00000014 100044B0 _BinkBufferSetScale@12
00000015 10004380 _BinkBufferUnlock@4
00000016 100036B0 _BinkCheckCursor@20
00000017 10005E40 _BinkClose@4
00000018 10005550 _BinkCopyToBuffer@28
00000019 10004730 _BinkDDSurfaceType@4
0000001A 100058F0 _BinkDoFrame@4
0000001B 10004950 _BinkGetError@0
0000001C 10005CE0 _BinkGetKeyFrame@12
0000001D 10006280 _BinkGetRealtime@12
0000001E 10006380 _BinkGetRects@8
0000001F 100060F0 _BinkGetSummary@8
00000020 10005DB0 _BinkGoto@12
00000021 10003390 _BinkIsSoftwareCursor@8
00000022 10005C60 _BinkNextFrame@4
00000023 10004A00 _BinkOpen@8
00000024 1000F970 _BinkOpenMiles@4
00000025 10006060 _BinkPause@8
00000026 10003760 _BinkRestoreCursor@4
00000027 10004920 _BinkSetError@4
00000028 100049B0 _BinkSetFrameRate@8
00000029 100049D0 _BinkSetIOSize@4
0000002A 100049E0 _BinkSetSimulate@4
0000002B 10004960 _BinkSetSoundSystem@8
0000002C 100049F0 _BinkSetSoundTrack@4
0000002D 10005EE0 _BinkWait@4
0000002E 10003240 _ExpandBink@32
0000002F 10002040 _ExpandPlane@32
00000031 10007A90 _YUV_blit_16bpp@44
00000032 100096B0 _YUV_blit_16bpp_mask@36
00000033 100073B0 _YUV_blit_24bpp@44
00000034 10009150 _YUV_blit_24bpp_mask@36
00000035 10006CA0 _YUV_blit_32bpp@44
00000036 10008BF0 _YUV_blit_32bpp_mask@36
00000037 100086A0 _YUV_blit_UYVY@44
00000038 1000A320 _YUV_blit_UYVY_mask@36
00000039 10008330 _YUV_blit_YUY2@44
0000003A 10009D90 _YUV_blit_YUY2_mask@36
0000003B 10008A10 _YUV_blit_YV12@48
0000003C 10006960 _YUV_init@4
0000003D 100048A0 _popmalloc@8
0000003E 10004860 _pushmalloc@8
0000003F 10001050 _radfree@4
00000040 10001000 _radmalloc@4

смотрел ExeScope на Export :!:

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 01.10.2004 (Пт) 15:38

2 Шурик: DumpBin - это, конечно, хорошо, но под необходимостью описаний я имел в виду, что типы и количество аргументов ты так не узнаешь. Ну и смысл той или иной функции тоже бывает далеко не всегда однозначно понятен...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 01.10.2004 (Пт) 16:06

Количество-то как раз узнает - вот оно, прямо перед глазами:
00000001 1000F330 _BinkAudioCompressClose@4
00000002 1000E6F0 _BinkAudioCompressLock@12
00000003 1000E600 _BinkAudioCompressOpen@8
...
Изображение

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 01.10.2004 (Пт) 16:25

00000031 10007A90 _YUV_blit_16bpp@44

44 аргумента? Сильно, ничего не скажешь. У меня уже давно пропало бы всякое желание работать с такой библой...
Кроме того, вопрос касательно типов оных все равно остается открытым. Равно как и описание каждой функции.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 01.10.2004 (Пт) 16:47

Я так полагаю, это не количество аргументов, а размер структуры.
Lasciate ogni speranza, voi ch'entrate.

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 01.10.2004 (Пт) 16:49

alibek писал(а):Я так полагаю, это не количество аргументов, а размер структуры.

Да уж, особенно учитывая, что эти числа практ. везде кратны четырем :). А что там и как разложено и в каком порядке - знает только создатель библиотеки.

_Мика_
Гуру
Гуру
 
Сообщения: 1459
Зарегистрирован: 24.10.2003 (Пт) 15:05
Откуда: г. Москва, м.Речной вокзал

Сообщение _Мика_ » 01.10.2004 (Пт) 16:51

Че то я не чего не понял что написал Щурик, но все же как объявить эту библу что-бы можно было воспроизводить BIK файлы, это где-то надо в инете искать описания этой библы?
-Папа, а правда, что форумы делают людей дибилами?
-гы гы гы, сынок, лол!

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 01.10.2004 (Пт) 16:53

Ennor писал(а):
00000031 10007A90 _YUV_blit_16bpp@44

44 аргумента? Сильно, ничего не скажешь. У меня уже давно пропало бы всякое желание работать с такой библой...

11, конечно же. Это количество передаваемых байтов.
Ennor писал(а):Кроме того, вопрос касательно типов оных все равно остается открытым. Равно как и описание каждой функции.

Дык и тут поможет DUMPBIN /DISASM ;-)
Изображение

_Мика_
Гуру
Гуру
 
Сообщения: 1459
Зарегистрирован: 24.10.2003 (Пт) 15:05
Откуда: г. Москва, м.Речной вокзал

Сообщение _Мика_ » 01.10.2004 (Пт) 16:55

УПСССССССССС. Сорри за "Щурика" Шурик (опечатка) :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops: :wink:
-Папа, а правда, что форумы делают людей дибилами?
-гы гы гы, сынок, лол!

PATRIOT_kz
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 105
Зарегистрирован: 14.09.2004 (Вт) 21:09
Откуда: Павлодар, Казахстан

Сообщение PATRIOT_kz » 01.10.2004 (Пт) 20:57

ОК. Вижу тут многие завели "_Мика_".

Значит числа после символа "@" это резульатив. Т.е.
Допустим на конце Declare стоит @4, ето значит что функция будет 'As Long'.
Вот ещё примеры:>)
->'@8' = As Double
->'@12' = As Single

2 tyomitch
:Я не знаю как ты этого не знал? Знал наверна.

---
Ето тока щас везёт, а далее понесёт!
Press any key . . .

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 02.10.2004 (Сб) 8:41

PATRIOT_kz писал(а):Значит числа после символа "@" это резульатив. Т.е.
Допустим на конце Declare стоит @4, ето значит что функция будет 'As Long'.
Вот ещё примеры:>)
->'@8' = As Double
->'@12' = As Single

2 tyomitch
:Я не знаю как ты этого не знал? Знал наверна.

stdcall-функция всегда возвращает 4 байта. А число после @ - это число передаваемых байтов параметров. К результату это не имеет никакого отношения.

А спорить с тобой у меня нет никакого желания. Иди обратно на свой ксакеп.ру, пиши трояны - ламеров пугать. Здесь ты достал постить всякий бред, не только неверный - даже неправдоподобный.

Вот как у тебя, например, тут получилось, что Single больше Double? :-D
Изображение

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 02.10.2004 (Сб) 9:09

tyomitch писал(а):stdcall-функция всегда возвращает 4 байта


А функция:
Код: Выделить всё
int __stdcall MyFunc();

:?:

tyomitch писал(а):число после @ - это число передаваемых байтов параметров

Тут такой вопрос:
Я в def-файле пишу что-то типа
Код: Выделить всё
EXPORTS
SimpFunc @1
SimpFunc_ @2
SuperFunc @3

Т.е. я всегда думал, что это типа "внутренний номер функции". И все работало. Хотя число параметров было не один байт и не два, и не три. Как же так робиться? Или это разные вещи???
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 02.10.2004 (Сб) 9:15

ANDLL писал(а):Я в def-файле пишу что-то типа
Код: Выделить всё
EXPORTS
SimpFunc @1
SimpFunc_ @2
SuperFunc @3

Т.е. я всегда думал, что это типа "внутренний номер функции". И все работало. Хотя число параметров было не один байт и не два, и не три. Как же так робиться? Или это разные вещи???

Тут это ординал, т.е. именно "внутренний номер функции".
Не может же всюду знак @ обозначать одно и то же. Вон, в адресе электронной почты он обозначает вообще третью вещь :-)
Изображение

_Мика_
Гуру
Гуру
 
Сообщения: 1459
Зарегистрирован: 24.10.2003 (Пт) 15:05
Откуда: г. Москва, м.Речной вокзал

Сообщение _Мика_ » 02.10.2004 (Сб) 9:45

Мдаааааааааааааа!!! Я то думал вопросик будет легкий!! :roll: :lol:
-Папа, а правда, что форумы делают людей дибилами?
-гы гы гы, сынок, лол!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 03.10.2004 (Вс) 13:12

Короче...
Кончайте страдать фигнёй :)
Кому охота заниматься unmangling'ом - вперёд. Этим, кстати, мы уже занимались в топике про линковку VB с другими языками, ищите :)

Библы с такими функциями предназначены для статической линковки посредством h. Можно и через declare, но это ж гемор. Можно попытаться достать этот h, но мне почему-то кажется, что он есть часть небесплатного SDK.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

_Мика_
Гуру
Гуру
 
Сообщения: 1459
Зарегистрирован: 24.10.2003 (Пт) 15:05
Откуда: г. Москва, м.Речной вокзал

Сообщение _Мика_ » 04.10.2004 (Пн) 10:12

Пасибо :( А жаль :roll:
-Папа, а правда, что форумы делают людей дибилами?
-гы гы гы, сынок, лол!

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 04.10.2004 (Пн) 11:37

GSerg писал(а):Библы с такими функциями предназначены для статической линковки посредством h. Можно и через declare, но это ж гемор. Можно попытаться достать этот h, но мне почему-то кажется, что он есть часть небесплатного SDK.

Я знаю, что ты знаешь, как правильно, но не знаю, знают ли это остальные. :-)
Так вот, статическая линковка здесь как раз не при чём. Имелась в виду имхо "линковка с помощью link-а (при сборке), а не GetProcAddress (в рантайме)".
Изображение

_Мика_
Гуру
Гуру
 
Сообщения: 1459
Зарегистрирован: 24.10.2003 (Пт) 15:05
Откуда: г. Москва, м.Речной вокзал

Сообщение _Мика_ » 04.10.2004 (Пн) 21:08

Ну да ты наверно занеш что может кто-то и незнает что кто-то знает что....бла бла бла бла :D


Ну так короче нельзя? :roll:
-Папа, а правда, что форумы делают людей дибилами?
-гы гы гы, сынок, лол!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 04.10.2004 (Пн) 21:43

Да можно, можно. Описалово достань только.
Всего-то делов, гы-гы-гы...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

_Мика_
Гуру
Гуру
 
Сообщения: 1459
Зарегистрирован: 24.10.2003 (Пт) 15:05
Откуда: г. Москва, м.Речной вокзал

Сообщение _Мика_ » 05.10.2004 (Вт) 15:45

Да уж искал, не нашел.
На разных форумах был где задовался такой вопрос - нет ответа :cry:
-Папа, а правда, что форумы делают людей дибилами?
-гы гы гы, сынок, лол!

cw014
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 09.11.2005 (Ср) 7:17

Сообщение cw014 » 09.11.2005 (Ср) 7:21

Будем похитрее, парни. Вот я тоже какую либо описалову бика искал и не нашел. Потом подумал поискать конкретную "уродливую" функцию, например _BinkOpen@8.

Нашел два форума: один ваш, а второй по отучению от CD игрухи CatWoman. Так вот там перец тоже приводит дамп функций. А смысл в том, что из них всех используются только:

Addr:8000D40C hint(0038) Name: _BinkWait@4
Addr:00000000 hint(0015) Name: _BinkDoFrame@4
Addr:00527CE8 hint(0011) Name: _BinkCopyToBuffer@28
Addr:000000D5 hint(0022) Name: _BinkNextFrame@4
Addr:8000D50C hint(0023) Name: _BinkOpen@8
Addr:00000000 hint(0016) Name: _BinkGetError@0
Addr:00527CE8 hint(000F) Name: _BinkClose@4
Addr:000000D6 hint(0028) Name: _BinkPause@8
Addr:8000D60C hint(0024) Name: _BinkOpenDirectSound@4
Addr:00000000 hint(0034) Name: _BinkSetSoundSystem@8

Поиск становится легче :roll:

P.S. А если еще кто директ саундом интересуется, из того же КатВумена:

Import Module 008: DSOUND.dll

Addr:00527CE8 hint(0001) Name: DirectSoundCreate

:wink:

Добавлено:

Еще я поковырялся в инете и нашел некую интересную инфу.
Вот например все, что идет после @ это общий размер параметров.
(Простите грешника - програмлю в билдере) Если выполнить функцию sizeof(void) мы узнаем что размер воида = 4. Следовательно можно предположить, что функции:

Addr:8000D40C hint(0038) Name: _BinkWait@4
Addr:00000000 hint(0015) Name: _BinkDoFrame@4
Addr:000000D5 hint(0022) Name: _BinkNextFrame@4
Addr:00527CE8 hint(000F) Name: _BinkClose@4
Addr:8000D60C hint(0024) Name: _BinkOpenDirectSound@4

имеют пустой параметр void, либо на адрес буфера.

А функция:

Addr:00000000 hint(0016) Name: _BinkGetError@0

Вообще не имеет параметра, она возвращает, как я понял какое либо значение. Только вот какое? :?:

cw014
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 09.11.2005 (Ср) 7:17

Сообщение cw014 » 09.11.2005 (Ср) 7:38

Все, ховайтесь. Вот вам, знатоки англицкого - читайте и просыещайтесь :lol:

http://multimedia.cx/multimedia-api.txt

И про смакер и про бинкер необходимое есть.

Не стоит благодарностей. Ща себе сброшу, кому надо, на мыло пишите.[/url]

cw014
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 09.11.2005 (Ср) 7:17

Сообщение cw014 » 11.11.2005 (Пт) 8:09

А вообще ловите все по поводу binkw32.dll
Вложения
[SDK][BIK - Bink Video File Format][WiNDowz] binkw32.dll interface header and library - fuck the RadGameTools.rar
(129.84 Кб) Скачиваний: 121


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 53

    TopList