forked from marpon/AxSuite
-
Notifications
You must be signed in to change notification settings - Fork 0
/
inc_files.bas
60 lines (49 loc) · 1.66 KB
/
inc_files.bas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#Include Once "windows.bi"
declare Function Filesize(str1 as string)as integer
declare Function MakeFile(lRet2 AS HGLOBAL, NewFile As String, dret1 as long) As integer
#ifndef __incany_bi__
#define __incany_bi__
#macro MemFileAny(_nfile , strFile , _outfile)
dim is1##_nfile as long = Filesize(strFile)
dim lpFile##_nfile As any ptr
asm
.section .text
jmp .end_##lpFile##_nfile
.section .data
.align 16
.start_##lpFile##_nfile:
.incbin ##strFile
.section .text
.align 16
.end_##lpFile##_nfile:
lea eax, .start_##lpFile##_nfile
mov dword ptr [lpFile##_nfile], eax
end asm
MakeFile(lpFile##_nfile, _outfile, is1##_nfile)
#endmacro
#endif ' __incany_bi__
Function Filesize(str1 as string)as integer
Dim f As short
f = FreeFile
if Open (str1 For Binary Access Read As #f)=0 then
return (LOF(f))
Close #f
else
return 0
end if
END FUNCTION
Function MakeFile(lRet2 AS HGLOBAL, NewFile As String, dret1 as long) As integer
dim AS ubyte ptr dRet2
Dim lFile AS short
dRet2 = LockResource(lRet2)
print len(dRet2)
lFile = FreeFile 'find next open file number
Open NewFile For Binary As #lFile 'create the new file
Put #lFile,, dRet2[0], dRet1 'write the buffer to the file
Close #lFile 'close the file
Function = 1 'worked so return a 1
End Function
'dim str1 as string="babygrid5.exe"
'dim str2 as string="DEF1-Editor.exe"
'MemFileAny(1,"babygrid1.exe",str1)
'MemFileAny(2,"DEF-Editor.exe",str2)