wav en dll? vengo cargado!
Publicado: 30 Sep 2018, 18:36
hola compañeros, por aqu´´i estoy devuelta.
otra vez yo con esto de reproducir wav en dll.
se que estoy bastante pesado, pero es que fue algo que se me ocurrio y lo quiero lograr.
hoy he venido con un pequeño c´´odigo, que extrage de la web, con el cual he experimentado un poco, he cambiado mucho pero no he llegado a mi proposito.
por aqu´´i les adjunto el au3 con el c´´odigo, y el archivo dll con el que quiero hacer la prueba.
de todos modos, les copio todo lo que tengo, asi se las hago mas corta.
podrian ayudarme a sacar esas partes que no van, para entender mejor como funciona?
por que con esto que tengo, lo ejecuto, pero no hace nada, yo no se si es el codigo, o es el dll, que yo mismo le cargue un wav adentro y la direccion del wav esta mal en el au3, y ya no se que pensar.
bueno, talvez con esto alguno me pueda ayudar,
esperare con entuciasmo sus respuestas,
un saludo y suerte para todos.
otra vez yo con esto de reproducir wav en dll.
se que estoy bastante pesado, pero es que fue algo que se me ocurrio y lo quiero lograr.
hoy he venido con un pequeño c´´odigo, que extrage de la web, con el cual he experimentado un poco, he cambiado mucho pero no he llegado a mi proposito.
por aqu´´i les adjunto el au3 con el c´´odigo, y el archivo dll con el que quiero hacer la prueba.
de todos modos, les copio todo lo que tengo, asi se las hago mas corta.
por lo que puedo entender, este codigo extrae un jpeg, una fuente y un sonido del dll, y a mi me interesa solo el wav, pero como no tengo del todo claro que hace cada cosa, no se que parte del codigo no va.#include <WinAPIRes.au3>
#include <APIResConstants.au3>
#include <WinAPIMisc.au3>
#include <APIMiscConstants.au3>
#include <GUIConstantsEx.au3>
#include <Memory.au3>
#include <StaticConstants.au3>
#include <MsgBoxConstants.au3>
Global $sJpg=@TempDir&'\~Tech.jpg'
; Load Resources.dll to memory
Local $hInstance= _WinAPI_LoadLibraryEx(@ScriptDir&'\Extras\Resources.dll', $LOAD_LIBRARY_AS_DATAFILE)
If Not $hInstance Then
MsgBox(BitOR($MB_ICONERROR, $MB_SYSTEMMODAL), 'Error', @ScriptDir&'\Extras\Resources.dll not found.')
Exit
EndIf
; Load JPEG resource from Resources.dll library
Local $hResource= _WinAPI_FindResource($hInstance, 'JPEG', 1)
Local $iSize= _WinAPI_SizeOfResource($hInstance, $hResource)
local $hData= _WinAPI_LoadResource($hInstance, $hResource)
local $pData= _WinAPI_LockResource($hData)
; Save resource to .jpg file
local $hFile=FileOpen($sJpg, 2+16)
local $tData=DllStructCreate('byte['&$iSize&']', $pData)
FileWrite($hFile, DllStructGetData($tData, 1))
FileClose($hFile)
; Load FONT resource from Resources.dll library
$hResource= _WinAPI_FindResource($hInstance, $RT_FONT, 'TECHNOVIA_CAPS')
$iSize= _WinAPI_SizeOfResource($hInstance, $hResource)
$hData= _WinAPI_LoadResource($hInstance, $hResource)
$pData= _WinAPI_LockResource($hData)
; Add font from a memory to the system
local $hFont= _WinAPI_AddFontMemResourceEx($pData, $iSize)
; Load SOUND resource from Resources.dll library
$hResource= _WinAPI_FindResource($hInstance, 'sonido', 1)
$iSize= _WinAPI_SizeOfResource($hInstance, $hResource)
$hData= _WinAPI_LoadResource($hInstance, $hResource)
$pData= _WinAPI_LockResource($hData)
; Copy WAV to memory for use later
local $hWave= _MemGlobalAlloc($iSize, $GMEM_MOVEABLE)
local $pWave= _MemGlobalLock($hWave)
_MemMoveMemory($pData, $pWave, $iSize)
; _MemGlobalUnlock($hWave)
; Load STRING resource from Resources.dll library
local $sText= _WinAPI_LoadString($hInstance, 1)
; Unload Resources.dll from memory
_WinAPI_FreeLibrary($hInstance)
; Create GUI
GUICreate('Test '&StringReplace(@ScriptName, '.au3', '()'), 350, 350)
GUICtrlCreatePic($sJpg, 0, 0, 350, 350)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlCreateLabel($sText, 10, 18, 330, 36, $SS_CENTER)
GUICtrlSetFont(-1, 30, -1, -1, 'Technovia Caps')
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
GUICtrlSetColor(-1, 0xF06000)
local $Button=GUICtrlCreateButton('Play Sound', 125, 316, 100, 23)
GUICtrlSetOnEvent($button, "sonido")
GUISetState(@SW_SHOW)
While 1
WEnd
Func sonido()
_WinAPI_PlaySound($pWave, BitOR($SND_ASYNC, $SND_MEMORY, $SND_NOWAIT))
EndFunc
; Free resources
_WinAPI_RemoveFontMemResourceEx($hFont)
FileDelete($sJpg)
podrian ayudarme a sacar esas partes que no van, para entender mejor como funciona?
por que con esto que tengo, lo ejecuto, pero no hace nada, yo no se si es el codigo, o es el dll, que yo mismo le cargue un wav adentro y la direccion del wav esta mal en el au3, y ya no se que pensar.
bueno, talvez con esto alguno me pueda ayudar,
esperare con entuciasmo sus respuestas,
un saludo y suerte para todos.