Rev 5626 | Rev 5676 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5626 | Rev 5631 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | #ifndef INCLUDE_DLL_H |
1 | #ifndef INCLUDE_DLL_H |
2 | #define INCLUDE_DLL_H |
2 | #define INCLUDE_DLL_H |
Line 3... | Line 3... | ||
3 | 3 | ||
4 | #ifndef INCLUDE_KOLIBRI_H |
4 | #ifndef INCLUDE_FILESYSTEM_H |
5 | #include "../lib/file_system.h" |
5 | #include "../lib/file_system.h" |
Line -... | Line 6... | ||
- | 6 | #endif |
|
- | 7 | ||
- | 8 | #ifdef LANG_RUS |
|
- | 9 | #define _TEXT_ERROR_ADD "'訡ª ¯à¨ § £à㧪¥ ¡¨¡«¨®â¥ª¨" |
|
- | 10 | #elif LANG_EST |
|
- | 11 | #define _TEXT_ERROR_ADD "'Viga teegi laadimisel" |
|
- | 12 | #else |
|
Line 6... | Line 13... | ||
6 | #endif |
13 | #define _TEXT_ERROR_ADD "'Error while loading library" |
Line 7... | Line 14... | ||
7 | 14 | #endif |
|
8 | 15 | ||
9 | char a_libdir[43] = "/sys/lib/\0"; |
16 | char a_libdir[43] = "/sys/lib/\0"; |
10 | - | ||
11 | :inline void error_init(dword text) |
- | |
12 | { |
- | |
13 | dword TEXT_ERROR = malloc(1024); |
- | |
14 | #ifdef LANG_RUS |
- | |
15 | strcpy(TEXT_ERROR,"'訡ª ¯à¨ § £à㧪¥ ¡¨¡«¨®â¥ª¨ `"); |
- | |
16 | #elif LANG_EST |
- | |
17 | strcpy(TEXT_ERROR,"'Viga teegi laadimisel `"); |
17 | |
18 | #else |
- | |
19 | strcpy(TEXT_ERROR,"'Error while loading library `"); |
18 | :inline void error_init(dword text) |
20 | #endif |
19 | { |
21 | strcat(TEXT_ERROR,text); |
20 | dword TEXT_ERROR = malloc(1024); |
Line 22... | Line 21... | ||
22 | strcat(TEXT_ERROR,"`' -E"); |
21 | sprintf("%s `%s`' -E",_TEXT_ERROR_ADD,text); |
Line 116... | Line 115... | ||
116 | void dll_Init() { |
115 | void dll_Init() { |
117 | asm { |
116 | asm { |
118 | push ebp |
117 | push ebp |
119 | mov ebp, esp |
118 | mov ebp, esp |
120 | pushad |
119 | pushad |
121 | mov eax, #mem_Alloc |
120 | mov eax, #malloc |
122 | mov ebx, #mem_Free; |
121 | mov ebx, #free; |
123 | mov ecx, #mem_ReAlloc; |
122 | mov ecx, #realloc; |
124 | mov edx, #dll_Load; |
123 | mov edx, #dll_Load; |
125 | call SSDWORD[EBP+8] |
124 | call SSDWORD[EBP+8] |
126 | popad |
125 | popad |
127 | leave |
126 | leave |
128 | ret 4 |
127 | ret 4 |
Line 237... | Line 236... | ||
237 | return 0; |
236 | return 0; |
238 | @exit01: |
237 | @exit01: |
239 | return -1; |
238 | return -1; |
240 | } |
239 | } |
Line 241... | Line 240... | ||
241 | 240 | ||
242 | void load_dll(dword dllname, import_table, byte need_init) |
241 | byte load_dll(dword dllname, import_table, byte need_init) |
243 | { |
242 | { |
- | 243 | if (load_dll2(dllname, import_table, need_init)) |
|
- | 244 | { |
|
- | 245 | error_init(dllname); |
|
- | 246 | return false; |
|
- | 247 | } |
|
244 | if (load_dll2(dllname, import_table, need_init)!=0) error_init(dllname); |
248 | return true; |
Line 245... | Line 249... | ||
245 | } |
249 | } |
246 | 250 |