小弟想实现这样的功能:
1.查找本exe文件资源区类型为一自定义类型x的资源名称,
2.通过枚举,枚举到所有这种类型的资源
3.将枚举到的资源输出到文本文档目前的代码提示错误如下:“缺少End Sub”以下是代码:
Private Declare Function FindResource Lib "kernel32" Alias "FindResourceA" (ByVal hInstance As Long, ByVal lpName As String, ByVal lpType As String) As Long
Private Declare Function LoadResource Lib "kernel32" (ByVal hInstance As Long, ByVal hResInfo As Long) As Long
Private Declare Function LockResource Lib "kernel32" (ByVal hResData As Long) As Long
Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
Private Declare Function WriteFile Lib "kernel32" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long, lpOverlapped As OVERLAPPED) As Long
Private Declare Function EnumResourceNames Lib "kernel32" Alias "EnumResourceNamesA" (ByVal hModule As Long, ByVal lpType As String, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
Private Declare Function SizeofResource Lib "kernel32" (ByVal hInstance As Long, ByVal hResInfo As Long) As Long
Private Const GENERIC_WRITE = &H40000000
Private Const CREATE_ALWAYS = 2
Private Type SECURITY_ATTRIBUTES
        nLength As Long
        lpSecurityDescriptor As Long
        bInheritHandle As Long
End Type
Private Type OVERLAPPED
        Internal As Long
        InternalHigh As Long
        offset As Long
        OffsetHigh As Long
        hEvent As Long
End TypePrivate Sub Form_Load()
     '枚举
     Public Function EnumResNameProc(ByVal hModule As Long, ByVal lpType As String, ByVal lpName As String, ByVal lParam As Long)
            '加载资源
        Dim hRes, hResLoad, hResLock As Long
        hRes = FindResource(0, lpName, "x")
        hResLoad = LoadResource(0, hRes)
        hResLock = LockResource(hResLoad)
        '将资源写入文件
        Dim fp As Long
        Dim tmp As Long
        Dim size As Long
        size = SizeofResource(0, hRes)
        fp = CreateFile(lpName, GENERIC_WRITE, 0, vbNull, CREATE_ALWAYS, 0, 0)
        WriteFile fp, hResLock, size, tmp, vbNull
        '文件被释放,返回1继续枚举
        EnumNamesFunc = 1
     End Function
     EnumResourceNames vbNull, "x", EnumResNameProc, 0End Sub不好易思,小弟不才,错误可能很多,见笑了!