home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 2 / crawlyvol2.bin / program / c / rsctocs / readme.txt next >
Text File  |  1986-02-04  |  6KB  |  174 lines

  1.  
  2.  
  3.  
  4.  
  5.                  D E R   R E S O U R C E - T O - C - W A N D L E R
  6.                  =================================================
  7.  
  8.  
  9.  
  10.                                         von
  11.  
  12.                                  Dieter Fiebelkorn
  13.                                   Grüner Weg  29a
  14.                               4370 Marl 1  (Brassert)
  15.  
  16.                        (Entwickelt mit dem Turbo-C Compiler)
  17.                     (Idee und die rsrc_load-Routine entstammen
  18.                     der ST-Computer Dezember '87 Seite 129 f.)
  19.  
  20.  
  21.                             >>>>  PUBLIC - DOMAIN  <<<<
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  Dieses Programm wird vielleicht vielen C Programmierer helfen mit Resourcen
  28.  zu arbeiten.
  29.  
  30.  So kann zum Beispiel ein Programm entwickelt werden, daß ganz auf
  31.  externe Resourcen verzichten kann.
  32.  Dazu werden einfach die Resoucen mit diesem Wandler geladen und auf
  33.  Wunsch bearbeitet und abgespeichert. Das gespeicherte File hat die
  34.  Form einer C-Source, die lediglich compiliert und zu dem eigentlichen
  35.  Programm hinzugelinkt werden muß. Das Hauptprogramm muß nicht abgeändert
  36.  werden, da der Aufruf der rsrc_load und "rsrc_free" - Routine 
  37.  syntaktisch mit den Betriebssystemfunktionen übereinstimmt.
  38.  
  39.  Eine andere Möglichkeit besteht darin die "#include" - Anweisungen
  40.  der erzeugten Source zu entfernen und die Source selbst als Include-
  41.  File für das Hauptprogramm zu benutzen.
  42.  
  43.  Weiterhin wird nach dem Laden der Resource eine Kurzinformation der
  44.  Resource angezeigt, es ist der sogenannte Resource-Header.
  45.  
  46.  
  47.  ACHTUNG  : FALLS EIN EDITOBJEKT GLEICHZEITIG AUCH DAS LASTOBJEKT EINES
  48.  =======    BAUMES IST KOMMT DAS BETRIEBSSYSTEM DURCHEINANDER.
  49.             ES IST DANN MÖGLICH DIE EDITIERFELDER DES IM SPEICHER FOLGENDEN
  50.             BAUMES ZU BENUTZEN.
  51.             NACH ABSCHLUß DER EDITIERARBEITEN KANN ES ZUM ABSTURZ KOMMEN
  52.             FALLS DIESE UNERLAUBTEN EDITIERFELDER BENUTZT WURDEN.
  53.             DA DIE RESOURCE-CONSTRUCTION-SET'S DIESEN UMSTAND SCHEINBAR NICHT
  54.             BEACHTEN EMPFIEHLT ES SICH IN DER C-SOURCE EINE UMGRUPPIERUNG DER
  55.             OBJEKTE VORZUNEHMEN. (VORAUSSETZUNG IST, DAß SIE ÜBER DEN GENAUEN
  56.             AUFBAU EINES OBJEKTBAUMES BESCHEID WISSEN.
  57.             UND VERGESSEN SIE NICHT EVTL. DIE '*.H'-DATEI ZU ÄNDERN ODER BEI
  58.             ERGÄNZUNGEN UND EINFÜGUNGEN DIE "BAUMADRESSEN" ABZUÄNDERN
  59.             'rs_trindex' !!!)
  60.             
  61.  
  62.  
  63.  
  64.  
  65.  ACHTUNG : "FREE_IMAGES" und "FREE_STRINGS" werden nicht unterstützt !
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  Noch zwei Tips:
  72.      1. Wollen Sie eine interne und externe Resource benutzen, so benennen
  73.         Sie die Routinen der erzeugten Source um z.B. in r_load bzw. r_free
  74.         und sichern Sie die evtl. schon bestehende Resource.
  75.  
  76.  
  77.             extern int     global[];
  78.             static int     rsrcload_flag = 0;
  79.             static int     rsrcsave_flag = 0;               <<-- Einfügen
  80.             static OBJECT  rsc_save;                        <<-- Einfügen
  81.  
  82.  
  83.  
  84.             T0OBJ = 12;
  85.             :
  86.             :
  87.  
  88.             /*        ========= Resource-Load-Segment =========          */
  89.  
  90.             int r_load (RscFile)
  91.             char *RscFile;
  92.             {
  93.             int         dx,
  94.                         dy,
  95.                         Obj;
  96.  
  97.             OBJECT  **GEM_rsc;
  98.  
  99.             GEM_rsc = (OBJECT **) &global[5];
  100.             if (rsrcsave_flag == 0)                             <<-- Einfügen
  101.             {                                                   <<-- Einfügen
  102.                 rsc_save = *GEM_rsc;                            <<-- Einfügen
  103.                 rsrcsave_flag = 1;                              <<-- Einfügen
  104.             }                                                   <<-- Einfügen
  105.             *GEM_rsc = (OBJECT *) &rs_trindex[0];
  106.  
  107.             if (rsrcload_flag == 0)
  108.             {
  109.             :
  110.             :
  111.             }
  112.         }
  113.  
  114.         int r_free ()
  115.         {
  116.             OBJECT  **GEM_rsc;
  117.  
  118.             if (rsrcsave_flag == 1)                             <<-- Einfügen
  119.             {                                                   <<-- Einfügen
  120.                 GEM_rsc = (OBJECT **) &global[5];               <<-- Einfügen
  121.                 *GEM_rsc = rsc_save;                            <<-- Einfügen
  122.                 rsrcsave_flag = 0;                              <<-- Einfügen
  123.             }                                                   <<-- Einfügen
  124.             return(1);
  125.         }
  126.  
  127.  
  128.  
  129.      2. Wollen Sie jedoch zwei interne Resource benutzen, so müssen Sie 
  130.         zusätzlich die Variablen einer "Resource" umbenennen.
  131.  
  132.  
  133.  
  134.  
  135.  Ich wünsche viel Spaß mit dem
  136.  
  137.                       RESOURCE-TO-C-WANDLER
  138.  
  139.  
  140.                                                         D I E T E R
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  P.S.   : Wie schon angeführt entstannt die Idee dieses Wandles beim Lesen
  148.           des Artikels der aus des ST-Computer die rsrc_load - Routine wurde
  149.           diesem Artikel entnommen und für dieses Programm in geeigneter
  150.           Weise modifiziert und in ein, wie ich glaube, sinnvolles Programm
  151.           integriert.
  152.  
  153.           Ich hoffe auf Verständnis bei dem Autoren dieses Artikel und beim
  154.           Heim-Verlag.
  155.  
  156.  
  157.  P.P.S. : Für Angabe von Fehlern in diesem Programm und Verbesserungs-
  158.           vorschlägen wäre ich sehr dankbar.
  159.             (Bei Fehlern bitte eine möglichst genaue Beschreibung des
  160.              Vorganges der zu dem Fehler führte)
  161.  
  162.  
  163.  
  164.  
  165.  
  166. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  167.                               Vorliegende Dateien
  168. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  169.  
  170.  
  171.     - RSC_TO_C.PRG  : "Das Programm ! "
  172.     - README.TXT    : "Schon gelesen. (hoffe ich jedenfalls)"
  173.  
  174.