Good evening
I try this time to load a res wav file from dll .but no luck
use this example
but i dont know what the wrong
i successed to load from main project and after try from dll but something is wrong
someone can point me to the correct way
You need to upload the file .RES in the project and then want to upload .DLL file?
I do not know much you need to do. Do you have a source?
Cita de: ntaryl en 18 Enero 2010, 19:56 PM
Good evening
I try this time to load a res wav file from dll .but no luck
use this example
but i dont know what the wrong
i successed to load from main project and after try from dll but something is wrong
someone can point me to the correct way
hi nyaryl, well, i remember that .. isnt hard... here you got a TIP to do that:
http://www.devx.com/tips/Tip/12595
by
thanks for the fast reply
this is my example
http://rapidshare.com/files/337400568/res-dll.rar.html
thanks for the tips El_coco
in local way is ok
only with the dll i cant
Thanks for the time
the example come from thevbzone
Cita de: ntaryl en 18 Enero 2010, 22:11 PM
thanks for the fast reply
this is my example
http://rapidshare.com/files/337400568/res-dll.rar.html
thanks for the tips El_coco
in local way is ok
only with the dll i cant
Thanks for the time
the example come from thevbzone
i think you could load the dll, and get it hInstance, so, use that instead app.hinstance. i really dont know if it will work, but you can check.
BTW. i can't download your example, beacause stupid rapid share is overloaded!
by
the code in the Command3 is wrong...this line of code:
strFilePath = "\Sound.dll"
replace with this:
strFilePath = "Sound.dll"
the line "\" is wrong...
and this:
hResource = FindResource(hLibrary, "#101" & CStr(1) & Chr(0), "wave" & Chr(0))
replace with this:
hResource = FindResource(hLibrary, "#101", "CUSTOM")
The final code is:
Dim strString As String
Dim so As Integer
Dim lngStringLen As Long, hResource As Long, hdata As Long
Dim lpData As Long
Dim strFilePath As String
Dim hLibrary As Long
strFilePath = "Sound.dll"
hLibrary = LoadLibrary(strFilePath & Chr(0))
hResource = FindResource(hLibrary, "#101", "CUSTOM")
hdata = LoadResource(hLibrary, hResource)
lpData = LockResource(hdata)
PlaySound ByVal lpData, 0, SND_ASYNC Or SND_NODEFAULT Or SND_MEMORY
FreeLibrary hLibrary
the sound sounds good...
greetings.
Cita de: seba123neo en 19 Enero 2010, 01:22 AM
...
very good seba. and the thing to use SND_ASYNC its good too, to not lock the process.
bye
Thanks guys for the answer
and also to spent time in my post
.
seba123neo : i change the commend3 with this code and when run the project crash my vb ide
also when run it compile crash again
in ur pc work fine ?
thanks for the time
http://img521.imageshack.us/img521/7886/errorwx.jpg
thanks for ur time also El_coco
thanks again
with this example my project crash
i try to use it again
and this work
Dim strFilePath As String
Dim hLibrary As Long
Dim hResource As Long
Dim hData As Long
Dim lpData As Long
' Get the path to the Resource DLL
strFilePath = "Sound.dll"
' Load the Resource DLL
hLibrary = LoadLibrary(strFilePath & Chr(0))
If hLibrary = 0 Then
MsgBox "Failed to load the specified library with error code " & Err.LastDllError
Exit Sub
End If
' Get a .WAV file from the Resource DLL
hResource = FindResource(hLibrary, "#101", "CUSTOM")
If hResource <> 0 Then
hData = LoadResource(hLibrary, hResource) 'This gets a handle to the data
If hData <> 0 Then
lpData = LockResource(hData) 'This gets a POINTER to the data... which is what we need
If lpData <> 0 Then
PlaySound ByVal lpData, 0, SND_MEMORY Or SND_NODEFAULT Or SND_SYNC
End If
End If
End If
' Close the Resource DLL
FreeLibrary hLibrary
have a good afternoon
Actually theres a simpler way to do it, the only thing you have to do is use some resource editor(Resource Builder will work) add the resource as WAVE instead of CUSTOM and then some code like this one.
Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long
Private Declare Function LoadLibraryEx Lib "kernel32" Alias "LoadLibraryExA" (ByVal lpLibFileName As String, ByVal hFile As Long, ByVal dwFlags As Long) As Long
Private Const LOAD_LIBRARY_AS_DATAFILE As Long = &H2
Private Const SND_ASYNC As Long = &H1
Private Const SND_RESOURCE As Long = &H40004
Private Sub Form_Load()
Dim lLib As Long
lLib = LoadLibraryEx("C:\Documents and Settings\Cobein\Escritorio\proyecto1.dll", 0, LOAD_LIBRARY_AS_DATAFILE)
Debug.Print PlaySound("WAVE_0", lLib, SND_ASYNC Or SND_RESOURCE)
End Sub
thanks for the reply Cobein
have a good day
Here's Cobein saving the day! ;-) ;-)
BTW, i'm not drunk... :silbar: :xD
//Offtopic : Jeje.. porqué cuando una persona que habla inglés accede a un foro español.. tenemos que hablar todos en inglés por esa persona? y.. porqué cuando una persona que habla en español (ejemplo) y entra en un foro inglés.. te obligan a hablar inglés? (ej: HackHound).. :-\
Saludos! :huh:
Primero que nada, creo que esto lo aclare 1000 veces, ntaryl no habla ingles habla griego, asi que hace lo que puede.
Segundo, en HH hay secciones especiales para otros lenguajes
Tercero en este foro hay contenido mezclado y no hay restriccionescon el idioma hasta donde tengo entendido
Y por ultimo para contestar tu pregunta imagino que es simplemente una diferencia cultural, vos al igual ue muchos usuarios aca hablamos, mejor o peor pero hablamos ingles y me imagino que eso no pasa al reves.
Cita de: cobein en 20 Enero 2010, 03:02 AM
Primero que nada, creo que esto lo aclare 1000 veces, ntaryl no habla ingles habla griego, asi que hace lo que puede.
Segundo, en HH hay secciones especiales para otros lenguajes
Tercero en este foro hay contenido mezclado y no hay restriccionescon el idioma hasta donde tengo entendido
Y por ultimo para contestar tu pregunta imagino que es simplemente una diferencia cultural, vos al igual ue muchos usuarios aca hablamos, mejor o peor pero hablamos ingles y me imagino que eso no pasa al reves.
Bueno, pero respectivas secciones en ese foro no se 'explotan' tanto como el foro ensi.. pero no se.. yo defiendo mi idea.
Y está bien que un foro respete todos los idiomas eso es lo que tendrían que hacer los demás.
Saludos!
La explicación es sencilla, en este foro no tenemos secciones para distintos idioma, por lo tanto los no hispanohablantes se las apañan como pueden.
No veo el problema a que le respondan en el idioma que usa para consultar y mas cuando el usuario se esfuerza, ya que no es su idioma natal.
Lo que me parece curioso, es que le hagan consultas al moderador en ingles o agradezcan de esa manera, ya creo que lo hacen por joder (en el buen sentido de la palabra).
pero vale, que eso no importa :xD
saludos!!