Subversion Repositories Kolibri OS

Rev

Rev 9669 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
8709 Coldy 1
 
2
History
3
4
 
9669 Coldy 5
          dll.obj process app import table, but not depended librarys, after that app gots control in his starting point
6
8709 Coldy 7
 
9669 Coldy 8
        + Add KX header processing
9
        + Improved import table test logic, no reason to kill app for import absence - skip import processing (tnx ProMiNick)
10
        + Added ReadMe.txt (this doc)
11
8709 Coldy 12
 
9669 Coldy 13
          Added corrsponding error codes if one of library or entry not found
14
        + Added error handling with detailed inform user which error occurred through @notify.
9670 Coldy 15
          Now application is not crashed if bad format, can't load library or no found entry
9669 Coldy 16
17
 
18
 
8709 Coldy 19
20
 
21
22
 
23
TODO
9669 Coldy 24
8709 Coldy 25
 
9669 Coldy 26
8709 Coldy 27
 
28
How to use
29
30
 
31
1) In the version field of a header,  (after MENUET0x) you must specify the number 2
32
2) After existing header add KX header extension as descriprion bellow
33
3) Specify imported libraries. Currentry format of import table same as in case of using dll.Load
34
4) Add code, without connecting dll.inc and, accordingly, without calling dll.Load. The heap initialization function (f. 68.11) does not need to be called either.
9669 Coldy 35
8709 Coldy 36
 
37
   If the DLL.OBJ library is missing, a message will be displayed, incl. via @NOTIFY. If you get a page error make sure you have completed    steps 2 and 3
38
39
 
40
Not supported yet, will be realized later.
41
1) Field optHeader of COFF header need set in 8+n*4, where n is count of fields after KX header
42
2) After COFF header add KX header extension (in general same as in case for app)
43
44
 
45
Descriprion of KX header extension (alpha).
46
47
 
48
By default all offsets and sizes given in bytes, for Flags field offsets and size given in bits.
49
Offset 4.x meaning offset 4 bit x
50
51
 
52
53
 
54
55
 
56
57
 
58
 
59
 
9669 Coldy 60
In the future, it can take on the revision value
8709 Coldy 61
					(but can't take values higher than 64)
62
63
 
64
65
 
66
 
67
68
 
69
70
 
71
72
 
73
74
 
75
76
 
77
78
 
79
80
 
81
82
 
83
84
 
85
86
 
87
88
 
89
90
 
91
 
92
93
 
94
95
 
96
 ?	4	ExportsHeader		Pointer to export header (exists if F_Export=1), KX style export table not supported yet. Currently 						by backward compatibility reason used legacy style of export table, this field pointed to it
97
}
98
99
 
100
 ?	4	ImportsHeader		Pointer to imports header (exists if F_Import=1), KX style import table not supported yet. Currently 						by backward compatibility reason used legacy style of import table, this field pointed to it
101
}
102
103
 
104
105
 
106
EOF
107