Subversion Repositories Kolibri OS

Rev

Rev 7219 | Rev 7768 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 7219 Rev 7246
Line 14... Line 14...
14
	#define _TEXT_ERROR_ADD "'Error while loading library"
14
	#define _TEXT_ERROR_ADD "'Error while loading library"
15
#endif
15
#endif
Line 16... Line 16...
16
 
16
 
Line 17... Line -...
17
char a_libdir[43]  = "/sys/lib/\0";
-
 
18
 
-
 
19
dword GLOBAL_FUNC_LIB = 0;
-
 
20
dword G_FUNC_LOAD = 0;
-
 
21
dword G_FUNC_GET = 0;
-
 
22
dword PATH_LIBRARY_LOADING = "/rd/1/lib/library.obj";
17
char a_libdir[43]  = "/sys/lib/\0";
23
 
18
 
24
:inline void error_init(dword text)
19
:inline void error_init(dword text)
25
{
20
{
26
	dword TEXT_ERROR = malloc(1024);
21
	dword TEXT_ERROR[1024];
27
	sprintf(TEXT_ERROR, "%s `%s`' -E",_TEXT_ERROR_ADD,text);
-
 
28
	notify(TEXT_ERROR);
22
	sprintf(TEXT_ERROR, "%s `%s`' -E",_TEXT_ERROR_ADD,text);
Line 29... Line 23...
29
	free(TEXT_ERROR);
23
	notify(TEXT_ERROR);
30
}
24
}
31
 
25
 
Line 252... Line 246...
252
		return false;
246
		return false;
253
	}
247
	}
254
	return true;
248
	return true;
255
}
249
}
Line 256... Line -...
256
 
-
 
257
:struct OBJECT
-
 
258
{
-
 
259
	void load(dword dllname);
-
 
260
	dword get(dword fname);
-
 
261
} library;
-
 
262
 
-
 
263
:void OBJECT::load(dword dllname)
-
 
264
{
-
 
265
	dword tmp;
-
 
266
	IF(!GLOBAL_FUNC_LIB)
-
 
267
	{
-
 
268
		$mov eax, 68
-
 
269
		$mov ebx, 19
-
 
270
		ECX=#PATH_LIBRARY_LOADING;
-
 
271
		$int 0x40
-
 
272
		tmp = EAX;
-
 
273
		GLOBAL_FUNC_LIB = tmp;
-
 
274
		tmp+=4;
-
 
275
		G_FUNC_LOAD = DSDWORD[tmp];
-
 
276
		tmp+=8;
-
 
277
		G_FUNC_GET = DSDWORD[tmp];
-
 
278
	}
-
 
279
	G_FUNC_LOAD stdcall(dllname);
-
 
280
}
-
 
281
 
-
 
282
:dword OBJECT::get(dword fname)
-
 
283
{
-
 
284
	dword tmp=fname;
-
 
285
	G_FUNC_GET stdcall(tmp);
-
 
286
	return EAX;
-
 
287
}
-
 
288
 
-
 
289
/*
-
 
290
#define INIT_(name) byte init_#name(){object.load(name);
-
 
291
#define IMPORT(name) name = object.get(name);
-
 
292
#define _INIT return 1;}
-
 
Line 293... Line 250...
293
*/
250
 
294
 
251