duda con archivos .res y .rc

Iniciado por Anteros, 5 Diciembre 2007, 17:07 PM

0 Miembros y 1 Visitante están viendo este tema.

Anteros

Holas gente... :D

para q sirven estos archivos en vb6??... he visto algunos de estos archivos en algunos proyectos pero al hacerles doble click en el explorador de proyectos ..nada..no me abren...



Lambda

son archivos de recursos que usa el compilador, en el puedes almacenar cadenas/imagenes/iconos o cualkier otra cosa

demoniox12

Cita de: Lambda en  5 Diciembre 2007, 18:35 PM
son archivos de recursos que usa el compilador, en el puedes almacenar cadenas/imagenes/iconos o cualkier otra cosa

Hola! y como se puede hacer un archivo .res? x ejemplo quiero meter un ocx y luego extraerlo con una class que anda dando vueltas para extraer los recursos..


salu2!
By Demoniox

SKL (orignal)

para hacer eso tenes que bajar un Editor de Recursos... yo uso el Resource Builder... visual solo admite los .res, los .rc son para C/C++

y dentro del Recurso, podes meter imagenes, sonidos, ocx, dll, exe, animaciones, mp3, wav, todo lo que quieras y no hace falta poner todo en una carpeta y redireccionar por ruta, sino que sacas las imagenes e iconos del recurso y es mas facil y todo en 1 archivo...

saludos :D

demoniox12

#4
Cita de: skullsp en  5 Diciembre 2007, 20:24 PM
para hacer eso tenes que bajar un Editor de Recursos... yo uso el Resource Builder... visual solo admite los .res, los .rc son para C/C++

y dentro del Recurso, podes meter imagenes, sonidos, ocx, dll, exe, animaciones, mp3, wav, todo lo que quieras y no hace falta poner todo en una carpeta y redireccionar por ruta, sino que sacas las imagenes e iconos del recurso y es mas facil y todo en 1 archivo...

saludos :D

e intentado extraer el ocx que he metido en un res desde vb pero no lo he logrado... alguno que sepa?? (tengo una clas llamada cExtractRes que he sacado el MultiDesktop de LeonardoA) pero no logro hacerla funcionar..

salu2!

PD: aca les dejo la clas..

'---------------------------------------------------------------------------------------
' Module      : cExtractRes
' DateTime    : 24/10/2007 05:31
' Author      : Cobein
' Mail        : cobein27@hotmail.com
' Purpose     : Extract data from a resource and save it a to a file.
' Requirements: None
'---------------------------------------------------------------------------------------
Option Explicit

Private Declare Function FileExists Lib "kernel32" Alias "GetShortPathNameA" ( _
    ByVal sFile As String, _
    ByVal nu As Any, _
    ByVal nu As Long) As Long
Private Declare Function MoveFileEx Lib "kernel32" Alias "MoveFileExA" ( _
    ByVal lpExistingFileName As String, _
    ByVal lpNewFileName As String, _
    ByVal dwFlags As Long) As Long
Private Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" ( _
    ByVal lLongPath As String, _
    ByVal lShortPath As String, _
    ByVal lBuffer As Long) As Long
Private Declare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" ( _
    ByVal lpFileName As String) As Long

Private c_bDelete       As Boolean
Private c_sFile         As String
'
'---------------------------------------------------------------------------------------
' Procedure : ExtractResource
' Purpose   : Extract resource information and save it to a file.
' Parameters:
'            sDstFile: Destination File
'            sResName: Resource name
'            sResSection: Resource Section
'            bReplace: Replace existing file
'            bDeleteOnUnaload: Delete file on unload
'            Returns True on success
'---------------------------------------------------------------------------------------
Public Function ExtractResource( _
       ByVal sDstFile As String, _
       ByVal sResName As String, _
       Optional ByVal sResSection As String = "CUSTOM", _
       Optional ByVal bReplace As Boolean = False, _
       Optional ByVal bDeleteOnUnaload As Boolean = True) As Boolean

    On Local Error GoTo ExtractResource_Error

    c_bDelete = bDeleteOnUnaload
    c_sFile = sDstFile

    If Not (FileExists(sDstFile, 0&, 0) = 0) Then
        If Not bReplace Then
            ExtractResource = True
            Exit Function
        Else
            If DeleteFile(sDstFile) = 0 Then
                c_bDelete = False
                Exit Function
            End If
        End If
    End If
   
    Dim bvBuffer() As Byte
   
    If IsNumeric(sResName) Then
        bvBuffer = LoadResData(Val(sResName), sResSection)
    Else
        bvBuffer = LoadResData(sResName, sResSection)
    End If
    If UBound(bvBuffer) = 0 Then
        c_bDelete = False
        Exit Function
    End If
           
    Dim iFile As Integer
       
    iFile = FreeFile
    Open sDstFile For Binary Access Write As iFile
    Put iFile, , bvBuffer
    Close iFile
   
    ExtractResource = True
   
    On Error GoTo 0
    Exit Function

ExtractResource_Error:
    Close iFile
End Function

Private Function GetShortPath(ByVal sFile As String) As String
    Dim lLen        As Long
    Dim sBuffer     As String

    sBuffer = Space(254)
    lLen = GetShortPathName(sFile, sBuffer, 255)
    GetShortPath = Left$(sBuffer, lLen)
End Function

Private Sub Class_Terminate()
    If c_bDelete Then
        If DeleteFile(c_sFile) = 0 Then
            Call MoveFileEx(GetShortPath(c_sFile), &H0, &H4)
        End If
    End If
End Sub


y en el from load le puse..

Set f_cRes = New cExtractRes
Call f_cRes.ExtractResource(App.Path & "\ASD.OCX", "CUSTOM_0")


pero no me funciona.. ("CUSTOM_0") es el id del recurso..
By Demoniox

SKL (orignal)

no hagas eso. usa la clase y listo...

cobein

Fijate que el nombre del recurso y la sección esten bien
http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.