НОВОЕ: 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:

USB Widget - widget monitoring USB flashdisks

Kommentare:

.......
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.

Books about eComStation and OS/2 Warp: for dummies, developers and specialists. Find the listings here.

 


 

(C) OS2.GURU 2001-2021