НОВОЕ: OS/2 GURU - Вопросы и ответы

Reviews / articles about OS/2

Operating systems:
ArcaOS, eComStation, IBM OS/2 Warp
eComStation myths 

Latest  
 
 

Unsorted

 

 

ArcaOS 5.0 Russian
Russian ARCAOS exists and it's available since the middle of 2017. All versions are supported: 5.0, 5.0.1, 5.0.2.

eCo Software is able release OS/2 LIP packages for any other language (German, Dutch, Brazilian Portuguese, Spanish, Sweden, etc)

Using XObject for Configuration Files


TITLE: Using XObject for Configuration Files

DATE: 2010-09-28 11:21:23

AUTHOR: Joseph Shrago
Please use online translator
go to http://translate.google.com
and request the translation of http://ru.ecomstation./projects/reviews/index.php?id=220
to your language

..........:

... ...... ......... ......... ........ ...... . ....... ............ (ini-......, ........, registry . ......). .. .... ........... (................) ....... ........... ...... ........ (............) ........... ............. ... .......... ...... (....... ........ ... OS/2), .. ....... ...... ............. ........ .... ........ .............. (.............) ........, . ..... ........ (API) ............. ... . ..... OS/2.

.... ........ ..... ........... ........ ........ . .... ... "........=........", ..... ....... .............. . ..... ......... *ix (..... ....... .. .. ........ .... .. ......... .......... ...... ....... . sendmail.cf - .... ...... .. ...), .. ....... .. ....... ...... .... ......... (.........) ...... config.sys . autoexec.bat, ......... .......... ....... .......... ...... .... ........ ...., . ........ ......., ........ ..... ..... config.sys .....:

SET EPMPATH=C:\OS2\APPS;C:\opendoc\BIN;
PROTECTONLY=NO
SHELL=C:\OS2\MDOS\COMMAND.COM C:\OS2\MDOS
FCBS=16,8
RMSIZE=640
DEVICE=C:\OS2\MDOS\VEMM.SYS
DOS=LOW,NOUMB
DEVICE=C:\OS2\MDOS\VXMS.SYS /UMB
DEVICE=C:\OS2\MDOS\VDPMI.SYS
DEVICE=C:\OS2\MDOS\VDPX.SYS
DEVICE=C:\OS2\MDOS\VWIN.SYS
DEVICE=C:\OS2\MDOS\VW32S.SYS

........... ..... ......... ........ - .. .. ......... ............. ........ ........ ...... ........ . ..... ...... .... ... ............. .......... ........... .......... . .. ...... ....... .......... .. .. .. .... ....... .........

.............. .......... ..... ......... ....... . ini-...... .. Windows X.XX (........ 3.11) .. .... ........ ....... ........... ...... ......... ............... ........ . ............. ....... .. ........ ........ ... .. .... .......... "... ......"-"... .........", ... ....... ........ ... ...... .. ..... SYSTEM.INI ... WIN-OS2 ......:

[keyboard]
subtype=
type=4
keyboard.dll=kbdru.dll
oemansi.bin=xlat866.bin
typeofswitch=2
secondkeyb.dll=kbdusx.dll

[boot.description]
keyboard.typ=Enhanced 101 or 102 key US and Non US keyboards
mouse.drv=Microsoft, or IBM PS/2
network.drv=No Network Installed
language.dll=Russian
system.drv=MS-DOS System
codepage=866
woafont.fon=Russian (866)

. ........... ..... ...... ..... ....... .............. ................ ... ...... . .......... ...... ....... . ...... ..... ...... . .......... ........... ......, ... ...... ....... .... .. ... .............. ....... ........ ......., ... ... ..... ... ... ..... ........... .........., .. ... .......... .. ..... ............ .......... .... .......... . ........., . .... .............. .............. .............

..... ....... ........, ... ....... . ..... ..... .... .. ....., .... ........ .......... .... . ............, .. ..... .....

......... ..... . ........ .... ........-.......... ..... registry .. Windows9X . ....., . ..... ini-..... . OS/2. ........ .. ....... .. .............. ......... . .... .. ............. ....... ......... - ... ............. ........... ......... ......... (........ .... ...........) . ......... ....... ....... ...... .... .. .... ........ ........ ........ .......... ...., ... .. ...........

... ....... ............ .......... ......... ....... (. OS/2 .. .......... . WINPRF.DLL) .......... ........ .......... . .......... ...... ............ .......

... .......... ....., ......., ..... .........., ..... ........... ...... ... ........... ............. ......... .........-......... ... .......... ........ ... ......... ......... ........ . .... ... ......... ............... ......... ......... ......... ....... ......... . ........, .... .. ...... .......... .. ...... ............. .. ........ ...... .... ........ ......... .......... ........... ........ - .......... .......... ............, .......... ..... . .. ......... . ............. ......, ........ ......... ........ ........... .. ...... ........ (..... .......... .... .. ......) . .... . ....

........ ........ ...... .... ........... ...... .............. ......... ...... ......... .......... ........... .......... ... .............. ..... ........ . ....... .. .......... ......... ........ ...... . .... .. ............ ..... ........... .. ...... ........., ... ...... .... ........... ........ .. ...... ........ . ....... . .... . .... ....... ...... ........... ........ .......... ............ .........., ....... ...... .... .............. ........ ... ...... . ....... . ........ .....

... .......... ........ .. ..... ........ ....... ............. ......... ..... ..... ........... .......:

  • WPS-........ ....... .......... ....... ........ (........ ............, ........ . ......);
  • WPS-........ ... ......... ....... .... ............... ..... (........ ........ ............, . ...... . ......... ... ........);
  • ............ ...... ........... .. ........ .......... ...... . ........ . .... ........... ......... . ......-.........

......... ........ ...... ....... ...... .. ..... ............. ......... ........... .......... ........ . ....... ......... .. ..., ..., ..........., ..... ......... ... .......... .........., ... ...... .........-............ ......, ... ........ ... .....-.. ......... ... ........ . .. .... .. .... .. ..........

.... ......... ........ .. ......... . ........, .. ...... ......., ...... .............. ........ ............. Profile API ... ............. ....... .............

... ... ........ ... .. ............ ......... .......... . ......... ................:

  • ... ........ ...... ............ ...... ...... ..... ........... . .......... (.. ......);
  • ... ........ ........... . ........ (........... ............. ...... . ......... ......) ..... ............ ...... ..... ... ........., ... . ........ ............., ... .. ...... ...... .. ...... .. .............;
  • ............ .... ...... ......... ...... ...... ............. ... .......... "...... ......" . .........;
  • ............ .... ...... .... ........;
  • ............ ...... ........... ....... .......... . ...... .......

... .......... . .... ........... . ............ .......... ...... . ....... ............. ... .......... ........., .......... ....... ........, WPS-...... ............ . ......, . ..... API ... ...... . ...... .. ...........

............ ........:

..... .... ............ ............... ... ..... ..... ......... ...... .... ..... .... ........ . ........... ..... ....... ... .... ............ ........ ........ ....... .......... .... (......).

............ ......... ........ ........ ......., ....... ......... ......... ......., .......... . .............

........ ............ .....-.. ... . C++ : \xx, \\,\n,\t, etc, . ..... ........... ........ %.

........... ............ .......... ........ //, /*,*/ . ....... .. ............. .......... .++. 

....... ......... .......... .........:
.............. transient ....... .. ...... ... ........ .. .........; ..... .... ....... . ...... .............
....... .... ...... int
double
string
group
..... (4 .....)
............ (8 ....)
...... ........ (.. ........... .............. \0)
...... ............ ........ - ......... ...... .. ...... ........
....... .... ...... ... ............ . ...... IntField
DoubleField
StringField
TextField
RadioToggleField
CheckBoxField
ComboTogleField
ReferenceField
PasswordField
..... .............. . ........... int
..... .............. . ........... double
..... .............. . ........... string
..... .............. . ........... .......... .... (textarea)
..... ...... . ....... . ....... RadioButton
..... ...... . ....... . ....... CheckBox
..... ...... .. ...... . ....... . ....... ComboBox
.....-...... - . ....... ............. . ....... drag&drop
..... ... ..... . ........ ......,  ............... ..  GOST 21847-89
......... ... ObjectListField ..... .......... ......... ......... ............. ....
namedgroup ....... .. .... group, ............ ... ........ ....... . ......

..... ......... .. ........ . ............ ......... :


IntField = .
string title = "" // ........ ......... ... ...... . .............. . .......
int value = 0 // ........ ....
int min = 0 // .............. . ....... .......... ........ ...... value
int max = 0 // .............. . ....... ............ ........ ...... value
int delta = 0 // ... ............. ... .............. . .......
.

DoubleField = .
string title = "" // ........ ......... ... ...... . .............. . .......
double value = 0 // ........ ....
double min = 0 // .............. . ....... .......... ........ ............. value
double max = 0 // .............. . ....... ............ ........ ............. value
double coef = 0 // ........... ........ (... ...... .............. . ..... ........
// ........., . ............. . ......)
double delta = 0 // ... ............. ... .............. . .......
int decimals = 0 // .......... ......... ... ...... . .............. ......
// ..... .......... .....
.

StringField = .
int max = 0 // ............ .......... ........ . ......
string title = "" // ........ ......... ... ...... . .............. . .......
string value = "" // .... ...... .......... .......... ......... '...' ............ ......
// (\0 .. ........)
.

TextField = . // .......... StringField, .. ............ ..... textarea (MLE)
int max = 0
string title = ""
string value = ""
.

RadioToggleField = . // ........ ....... .... .. .... - .......... ........... ........
string title = ""
int value = 0 // ........ ..... ......... ......
group elements = . . // ..... ..... .... string
.

CheckBoxField = . // ........ ....... .... .. .... - .......... ........... ........
string title = ""
int value = 0 // ........ 1 .... ....... ......
.


 ComboToggleField = . // .......... ........... ... ....... ComboBox
string title = ""
int value = 0
group elements = . .
.

..... ReferenceField ......... ............ ......... ........ . ....., ...., ........, ........... ....... ....... .. ......... ....., ...... .. ....... ..... .... ......... . .............. . ..... ......, . ........, .... ......... ...... ....... ............ .. ......... .......


ReferenceField = . // ......-...... .. ...... ....... . ....... ......... drag&drop
string title = ""
string class = "" // ... ...... ....... ........ ..... ......... ...... ....
// (.. ..... .... ..... - class0|ckass1|...|classN)
string value = "" // ... ...... ..... ........... ......
int value2 = 0 // WPS-objectid

.


..... ObjectListField ......... ......... ...... ......... ........, ...., ........, ...... .......... . ...... ... ...... ......... ....... .......... ................. ...... ............

ObjectListField list = . // ...... ...... ........ ReferenceField ......... ......
   transient string title = ""
   transient group factory = .
      ReferenceField rs = .
         transient string title = ""
         transient group menu = .
            "......."
            "........"
         .
        transient string class = ""
        string value = ''
        int value2 = 0
     .
   .
   transient group buttons = .
      "........"
      "......."
   .
   group elements = .
   .
.



... ...... ....... ObjectListField . ...... ......... ........ ........ string title ........ ........, ...., ........ ........ name|value,  .... . ........ .......... .......  ...... ....... StringField name.

...... . ......, ......... . PasswordField, ............ .............. .......:
rc=getPasswordFieldValue(*XObject,password,sizeof(password));

. ........ ..... ............. (... ........ ........... .....), .......... ..... ...... .......:


ColorMaskField = .
   string title = ""
   int fcolor = 0      // .... ......... .....
   int bcolor = 0      // .... ....
 int width = 16 // ...... . ......
int height = 16 // ...... . ......
  string value = '' // ..... ....... 8*8 .

..... ..... ........, ... .......... . ................. ......:

  • title - .. ......... ..... ......-........ ........, ....... ............ . ....... . ... ......;
  • status - ... ...... ...... SUBTITLE  ........ .......
  • value - .. ......... ..... ........ ........;
  • elements - ............ ... ........ ....... . ......;
  • pages - ......... ........ .......;
  • sections - ......... ...... ...... ........

.. ...... .... ....... . ....... ..... ..... ......... .... ....... ...... .........
..., ........, ........ .....-........ ......... .........:

DEngine drill=.
   string title="........ ........."

   DoubleField diam_zd    =. title="....... ............." coef=0.001 decimals=1 delta=0.1 min=30 max=400.
   DoubleField leng_zd    =. title="..... ............." coef=1 decimals=2 delta=0.01 max=50.
   DoubleField q_zd       =. title="...... ............." coef=1000 decimals=1 delta=0.1 min=30 max=400.
   DoubleField dens_zd    =. title="......... ........" coef=1000 decimals=2 delta=0.01  min=0.8 max=2.5.
   DoubleField loss_px_zd =. title="...... ........ .. ........ ...." coef=98100 min=1 max=200.
   DoubleField freq_nx_zd =. title="....... ........ .. ........ ...." coef=0.01666 min=10 max=999.
   DoubleField loss_pt_zd =. title="...... ........ ... .........." coef=98100 min=1 max=200.
   DoubleField moment_t_zd=. title="......... ......" coef=10 min=1 max=1500.
   ComboToggleField drop   =.
       string title ="... ........."
       group elements = .
           string = "........ . .......... ......"
           string = "........ . ........ ......"
           string = "........ ........."
           .
       .
.

. ... ........ ........ ........... ......... ......... (/* ........... */ . ...... ...... ......... ... ............. ...... ... XObject):

/* XObject */
DEngine = .
diam_zd = .value = 30.0000.
leng_zd = .value = 0.0000.
q_zd = .value = 30.0000.
dens_zd = .value = 0.8000.
loss_px_zd = .value = 1.0000.
freq_nx_zd = .value = 10.0000.
loss_pt_zd = .value = 1.0000.
moment_t_zd = .value = 1.0000.
drop = .value = 0.
.

...... ......... .......... ........... ......... . ...... .......... ....... . ............... .....: min, max . .......

... .......... ..... ...... - ".... ..... ...... ... ........ . ........!"
......... . .......... ................ . ..................., ... ............ . .......
......, ... .......... ....., WPS-...... ................ .......... .............. ..... ........ ....... ... ........ ..... ....... (property). ... ..... . ........ ...... ........ ........... ........ - group . ....... pages ( ... .......) . sections (... ......).
... ... ........ ........... ...... ..... ...... :

group pages = .
namedgroup = . // ........ ........ .......
title = "%MajorTab" // ...... % ........ MajorTab
elements = . string = "... 1" // ....... ...... string = "... 2" ... string = "... N" . . namedgroup = . // ...... ........ ....... title = "MinorTab ........" elements = . string = "... 1" string = "... 2" ... string = "... N" . . ... // ...... ........ ....... .

... ... ........ (. ... .........) ..... ........ ...... ......... ......... (DEngine) ........... . .......:

DEngine drill=.
  ...
    group pages = .
       namedgroup = .
          string title = "%........ ........."
          group elements = .
             string string = "drop"
             string string = "diam_zd"
             string string = "leng_zd"
             string string = "q_zd"
             string string = "dens_zd"
             string string = "loss_px_zd"
             string string = "freq_nx_zd"
             string string = "loss_pt_zd"
             string string = "moment_t_zd"
             .
          .
     .
 .

........ ........ .. ...... ........ - .... ... ......... ...... . .... ........... .... ...... ..... ....... . ....... ...... .......... (........./........). ......... ......... ..... .......... ...... ..... .... ....... . ....... .......... .......... . ........, ..... ...... ..... .... ...... . ........ ........., . ..... ........ . ........ ..... . ...... ........ . ........ ...., ...... ......... .... ....... .. ........ .........  ......... ........ ...... ........ .. ........., ....... ...... ......... ..... XObject ........... ...... ...........

... ........ ...... ....... ............ .......... .............. group sections . ..., ... .......... ... ......:

DEngine drill=.
  ...
   group sections=.
    namedgroup=.
       title = "........ ........."
       elements=.
          string ="drop"
          string ="diam_zd"
          string ="leng_zd"
          string ="q_zd"
          string ="dens_zd"
          string ="loss_px_zd"
          string ="freq_nx_zd"
          string ="loss_pt_zd"
          string ="moment_t_zd"
          .
       .
    .
 .

...... ....... ............ .... .. ... .... .... ....... ............. ... ..... .. ..... (......) ......... .... ........ ...... ...... ...... ........ ... .. ......, ... ReferenceField ...... ........, ... ...... ..... ......... ...:


... ... ... ............:

... ............. ............ ....... ...... . .............. .......... . ..... ... ........ ......... .......... ......... AMT_PATH ....... .... config.ini .......... .......... (.. ....... .........):

/* AMT */
group Config = .
        string customer = "... ..."
        int loglevel = 0              // -1 ...... .......... ..... . .... \xobject.log
                                      //  0 ........ ...... ......... .........
                                      //  1 ........ .............. .......... .. .......
        group classes = .
                string = "classes.ini"  // ........ ..... ....... (...........)
                string = "common.ini"   // ........ ...... ...... ..... .......
                string = "DSTclass.ini" // ........ ....... ........ .........
                string = "KRSclass.ini" // ........ ....... ......... ... ............ ....... .......
        .
.

.... .... ............ WPS-........ AMTWPSXObject ........... ....... . ...... ........ ............. .... ...... ............ . ........... AMT.  
. ......... .. .......... ......... LIBPATH ....... ........... ... ............ .......... ........ XObject . ........ ...........  . .......  .......... ....... .. Rexx:

/*********************************************************************/
/* XObject registration utility*/
/*********************************************************************/
Call RxFuncAdd 'SysLoadFuncs', 'REXXUTIL', 'SysLoadFuncs'
Call SysLoadFuncs
Say 'AMT XObjects to be registered'
rc=SysRegisterObjectClass('AMTWpsObject', 'amtwpso')
if rc then say 'AMTWpsObject registered'
else say 'AMTWpsObject cannot be registered'

................ . ....... API XObject:
... ................ ....... ...... ......... ........ ............ ....... - ........ .... config.ini . ... ............. . ... ..... ... ...... ...... ................ ..... .... ...... .......... .... ......... ....... ......... . config.ini:

#include "common.h"

XObject  *o_config;  // ... ........

// ....... .............. .......... ................. ....... XObject
// . .......... ...-.. ....... . ...........
int InitXClasses(void)
.
char buf[256]="", *str;
char *amtPath = getenv(AMT_PATH);
int num=0;

   XOBJECT_INITIALIZE

// ........ ......... .......
   buf[0] = 0;
   if (amtPath) strcat(buf, amtPath);
   strcat(buf, "\\");
   strcat(buf, AMT_CONFIG);
   o_config = XObject::loadObject(buf);
   if (!o_config)
      return 1;

   o_config = o_config->getGroupElement("classes");
   for (int i = 0; igetGroupSize(); i++ )
       .
       str = o_config->getGroupElement(i)->getStringValue();
       if (str) 
          .
          buf[0] = 0;
          if (amtPath)
             strcat(buf, amtPath);
          strcat(buf, "\\");
          strcat(buf, str);
          num += XObject::loadClasses(buf);
          .
       .
return num; .

C........ ...... .... ............. . ......... ........ ......... ......... ...... ........ ... .........:


.
...
 o_main=XObject::loadObject(file_name);  // ........ ..... ........... ........
   if (!o_main)
      return 1;   // ...... ...... ........ - ....... . ......... ...... ... o_sub = o_main->getGroupElement("title"); Name=strdup(o_sub->getStringValue()); o_sub = o_main->getGroupElement("model_type"); model_type=o_sub->getIntValue(); // ... (.....) ...... ....... ......... o_sub = o_main->getGroupElement2("mode|value"); // ..... ............ ......... ... mode=o_sub->getIntValue(); // ... (.....) ...... ....... ......... // .... ....... ........ ......., ..... ............... ....... GetValue(name), // ....... ... . ........ ...... ...... o_ref=o_main->getValue("derrik"); // ......... ........ ....... ..... // ... ..... ....... // o_ref=XObject::loadObject(o_main->getGroupElement2("derrik|value")->getStringValue(); // ......... ........ ......... g_kv . ....... .. g_kv=o_ref->getGroupElement2("g_kv|value")->getDoubleValue() * o_ref->getGroupElement2("g_kv|coef")->getDoubleValue(); .
... ... ...... ...... .............

...... . ......... ............ (..........) ..... ............ .. ...... ..... ...... (name), .. ......... ...... ("name|subname"), . ..... .. .. .......... ....... . group. . ........... .... ........ ......... ......... ........ ......... ..... ....... .. ..... <%1|value>, .... diam_zd ..... .......... ..... .... . .......

...... XObject ......... ..... . ......... . ... .......... .......... ........... ... .... ........ ........... ............, ...... . ................ ..............

... .................. ........ ........ public ........ ...... XObject

class _Export XObject .
public:
static void setLogLevel(int);
static int log(char*, ...);
static int log(int, char*, ...);
static int logObject(XObject*, char* = NULL);
static void logClasses();

static void initClass();
static void unInitClass();
static int loadFile(char*, char**, int*);
static int saveFile(char*, char*, int);
static XObject* getInstance(char*, char*, int = FLAGS_NORMAL, int =-1);
static XObject* getInstanceText(char*, int*, int =-1);
static XObject* getInstanceBin(char*, int*, int = -1);
static int loadClasses(char*);
static XObject* loadObject(char*);
static int saveObject(char*, XObject*);
...
public:
static int getClassNum();
static char* getClassName(int);
...
public:
virtual ~XObject();
int isVoid();
int isInteger();
int isDouble();
int isString();
int isComplex();
int isGroup();
int isObject();
int isObject(char*);
int isBasic();

virtual XObject* clone();
int initFrom(XObject*);

char* getName();
int setName(char* n);
char* getClassName();
int getClassVersion();

int getFlags();
int setFlags(int);
void flagSet(int);
void flagClear(int);
int flagIsSet(int);

int getSizeBin();
int getSizeText();

int getIntValue();
int setIntValue(int);

double getDoubleValue();
int setDoubleValue(double);

char* getStringValue();
int getStringSize();
int getStringLength();
int setStringSize(int);
int setStringValue(int, char*);
int setStringValue(char*);

int getGroupSize();
XObject* getGroupElement(int);
XObject* getGroupElement(char*);
XObject* getGroupElement2(char*);
int addGroupElement(XObject*);
int removeGroupElement(int);
int removeGroup();

int loadBinFile(char*);
int readText(char*, int);
int readBin(char*, int);
int writeBin(char*, int);
int writeText(char*, int, int = 0);

virtual XObject* getValue();
virtual int show(int);
virtual int print(int);
virtual int html(int);
// misc
static char* strPrintInteger(char*, int, int);
static char* strPrintDouble(char*, double, int, int);
static char* strPrintString(char*, char*, int, int*);
static char* strPrintStringEsc(char*, char*, int, int*);
...
.;

.... ... ........... ......... ...., .. ...... ....... ........ ... ............ ......
.... .. ...... ......... ... ...... .......... . ......., ...... ....: Joseph Shrago -- e:mail : LFer at rambler dot ru

 

Test the program:

Buy DVD/CD Toys (burn DVD and CD disks) and get free access to eCS FAQ database!

Komentarze:

.......
2010-10-04 17:17:30

. ..... ... ... ............. .. Rexx'..?!

... .... ... .... .. ..... ........

joseph
2010-10-06 18:31:39

.. ...... .......... ............. ...... ... . ...... ..... ..... ....

.......... .. ..... ....... ......... .... . ........... xob . ..... ........ - ........... .

name_of_class=.. ..... .... .. ......... ... Xobject.

.... .... .... . rexx2xobject API .. ..... ....... .. ...... ............ ..... ....?

.......:
2010-10-12 23:52:03

joseph: . ....... ......... ........... ...... .... . ............ .... .. ... .... ........ ..... ..... ........... ...... ... ...... ........ ............ ........... ........... ..... .. .. ...... ..............

Joseph
2010-10-14 15:50:44

......., ..... ....... ....... - ...... ....... . ......... Xobject . ........ . .... rxXobject.dll ............ ...... ....... ... ......

.......
2010-10-15 15:24:35

Joseph: ...... Dll .. ......? :))) .. . .. ...., ....... ...... ..... 8 ... ....., ... ... .... .. ........ .. ... . ..... ........?

Rexx .......... ...., . ...... ........ . .... :), . ... ... 6 .... ...... .. .... ..... .... rexx ........ ............ ............. ... ............. ....... ... ....... .......... ..2 ... ....... . ..... .... ......... ........ . ..... (.... ........... .........), . .. ....... ... ......... ....... ...... .... ......... . ...... .. 100%, ... ... .. ... ..... ........ . . ........ .. ... ..... .... .......... ..........

. ... ......... .... ............., ....... ...... ...... . ...... ...... ................. :( ... .... ...... ... .......... .. ...... . ....... ......... . .... .. rexx ... ... ... ...... .. ... dll'.. . ... ........ .. ....... . .... ... ........ ... .. ....... .. .. ........., ....... . ... ..... . ....... ... ......, ... .......... .. ..... .... (... ....... ........).

....... ........ ........ ............., ............ ........... ........ ..... . . eCS. . ...... .... ........ .. ........ ........ ..........., . ........ Rexx'... ..... ..... ........ ... rexx - ... ....... ....... os2 (eCS). ... ... . ....! .. . ......... ..... ... ......... ..... ........, ... Rexx ...-.. ......... . ...... ....... ...... ... .............

.. .... .......... . ..........., . .... . ...... ........... .... .......... ... ....... ....... ..... ..., .. .. ... ........ ......, ....... ........ ...... ........ .. .......... ...... .......... OS2 (eCS) . Rexx'.... .......... .. ........... ........ ....... ... . ............ .. .... ....-........ ....... ........ ...... ........ OS2, Rexx ..... .... .. ........ ...... ...... ... .... ........ .............. ....... (......: ......... ......... Mesa) . .... ........... ......... ..... ......... . ........... .. .......... ..... . rexx'... _........._ ............ . ... ....... ....... . ......... ...... ... ........... ........ .... ........ . ... ... ....... ........ ......... ..... ............ . . ........ :( ... . ...... ....... ........, ......... ........ . ......... ............ (..... . .. ........).

.... ......., ... ...... ... ...... ..... .......

Joseph
2010-12-24 21:20:40

....... REXX API ... XObject

Joseph
2011-03-15 17:55:35

.......... . XObject .............. ..... ......... ..... ...... ........ .. ..... ...... (... ......), .. . .. ..... ....... ...... ....... ......... ... .... . Warpin.

The development of software for eComStation is profitable: a) system API is effective and considered. b) The market is not so infinite as Windows. All eCS users know about your product. c) Every developer is influencing on the OS significantly.

 


 

(C) OS2.GURU 2001-2021