我先做了个含有一个自定义资源的VB文件,资源为一个文本("我不是个随便的人,我随便起来不是人!")用form的caption来显示!
Private Sub Form_Load()
Dim myRes
myRes = LoadResData(101, "CUSTOM")
Form1.Caption = StrConv(myRes, vbUnicode)
End Sub
Private Sub Form_Load()
Dim myRes
myRes = LoadResData(101, "CUSTOM")
Form1.Caption = StrConv(myRes, vbUnicode)
End Sub
编译生成后的文件取名为target.exe,放到d盘根目录!
下面再来弄个主程序来对它进行资源写入!
Option Explicit
'API声明
Private Declare Function BeginUpdateResource Lib "kernel32" Alias "BeginUpdateResourceA" (ByVal pFileName As String, ByVal bDeleteExistingResources As Long) As Long
Private Declare Function UpdateResource Lib "kernel32" Alias "UpdateResourceA" (ByVal hUpdate As Long, ByVal lpType As String, ByVal lpName As Long, ByVal wLanguage As Long, lpData As Any, ByVal cbData As Long) As Long
Private Declare Function EndUpdateResource Lib "kernel32" Alias "EndUpdateResourceA" (ByVal hUpdate As Long, ByVal fDiscard As Long) As Long
Private Sub Cmd_Write_Click()
Dim hRes As Long
Dim myStr() As Byte
myStr = StrConv(Text1.Text, vbFromUnicode)
hRes = BeginUpdateResource("d:\target.exe", False)
UpdateResource hRes, "CUSTOM", 101, 2052, myStr(0), Len(Text1.Text)
EndUpdateResource hRes, False
End Sub