Что нового

Не известная DLL video and voip

Viktor1703

AutoIT Гуру
Сообщения
1,535
Репутация
413
Сегодня по надобности скачал Mail.Ru Agent и установил, решил покапаться в папке с установленной программой, и увидел vivo.dll (C++ video and voip framework - icq build 2011), удивился, так как в версии 5.6 её не было, может эта dll обеспечивает передачу потокового видео и аудио с устройства... пока не ясно, подумал посмотреть её функции но возвратило вот что:

Код:
??0?$VIVOSingleton@VVIVOAudioDeviceControl@@@@QAE@ABV0@@z
??0?$VIVOSingleton@VVIVOAudioDeviceControl@@@@QAE@XZ
ну и так далее.....

Я был просто ошарашен, поискав инфу в интернете, я узнал что это нормально для тех dll которые написаны на CPP, но как их тогда вызывать, я подумал что какую то магию нужно применить, но оказалось нет, они так и вызываются, потом до меня допёрло что я где - то видел уже такие функции и оказалось что я был прав, такие функции на CPP оказывается не спроста, если кто не знает в чём здесь магия, я ниже прикрепляю просмотр функций из dll, но он не простой, я не автор dll для просмотра таких функции, я позаимствовал пример на форуме по PureBasic, но я был очень удивлён когда воспользовался просмотром функций, можно узнать не только имя самой функции но и её параметры

Код пример:

Код:
Global $Dll = DllOpen(@ScriptDir & '\gfncpp.dll')

$hForm = GUICreate('Get Function Name`s', 600, 400)
$ListView = GUICtrlCreateListView('Function Name', 0, 0, 600, 400)
GUICtrlSendMsg($ListView, 0x101E, 0, 595)
GUISetState()

$FuncList = GetFunctionName(@ScriptDir & '\vivo.dll', 256)
$GetName = StringSplit($FuncList, "|")
For $i = 1 To $GetName[0]
	GUICtrlCreateListViewItem($GetName[$i], $ListView)
Next	

While 1
	Switch GUIGetMsg()
	    Case -3
		    Exit
	EndSwitch		
WEnd

Func GetFunctionName($PathDLL, $LenBuff, $Flag = 0)
	Local $aRet = DllCall($Dll, 'str', 'GetFunctionName', 'str', $PathDLL, 'int', $LenBuff, 'int', $Flag)
	Return $aRet[0]
EndFunc


В функции GetFunctionName последний параметр необходим только для тех dll которые написаны на CPP, если в dll функции не выглядят так как приведено в примере выше, значит параметр нужно изменить на 1 (единицу). Хочется узнать Ваше мнение по поводу Vivo.dll, для чего она нужна и возможно ли её использование.

Vivo & GFNCPP
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Ну, список функций можно посмотреть и спомощью _WinAPI_EnumDllProc() из WinAPIEx.au3 или с помощью этой небезызвестной утилиты.

;)
 
Верх