Cobol Foro

Cobol Foro (https://www.cobolforo.es/index.php)
-   PowerCOBOL y WinAPI (https://www.cobolforo.es/forumdisplay.php?f=33)
-   -   [Sintaxis] Llamada a Advapi32.lib (https://www.cobolforo.es/showthread.php?t=1534)

Kuk 21 de octubre de 2022 11:58

A ver chavales, a mi este código me funciona en PowerCOBOL v10.1 :yess:

Código COBOL:
  1.  ENVIRONMENT     DIVISION.
  2.  DATA            DIVISION.
  3.  WORKING-STORAGE SECTION.
  4.  01  HKCU-BL                             BINARY-LONG VALUE h"80000001". *> Binario Nativo, Integer
  5.  
  6.  01  Reserved                            PIC 9(9)   COMP-5 VALUE 0.    *> Reserved
  7.  01  NULO                                PIC 9(9)   COMP-5 VALUE 0.    *> NULO
  8.  01  REG_OPTION_NON_VOLATILE             PIC 9(9)   COMP-5 VALUE 0.    *> dwOptions
  9.  01  KEY_ALL_ACCESS                      PIC 9(9)   COMP-5 VALUE 983103.  *> samDesired    HEX F003F
  10.  01  lpSecurityAttributes                PIC 9(9)   COMP-5 VALUE 0.    *> lpSecurityAttributes
  11.  01  hregkey                             PIC 9(9)   COMP-5 VALUE 0.    *> phkResult
  12.  01  neworused                           PIC 9(9)   COMP-5 VALUE 0.    *> lpdwDisposition recibe 1 La clave no existía y fue creada , recive 2 si existía y simplemente se                       abrió sin cambiarla    
  13.        
  14.  01 subkey                               PIC X(80) value "Software\PruebaSOFT" & X"00".                      *> lpSubKey  
  15.      
  16.  01 retval                               PIC S9(9)   COMP-5.               *> retorno de la func
  17.  PROCEDURE       DIVISION.
  18.      CALL "RegCreateKeyExA" WITH stdcall LINKAGE    
  19.              USING  BY VALUE         HKCU-BL
  20.                     BY REFERENCE     subkey
  21.                     BY VALUE         Reserved
  22.                     BY VALUE         NULO                              
  23.                     BY VALUE         REG_OPTION_NON_VOLATILE
  24.                     BY VALUE         KEY_ALL_ACCESS
  25.                     BY VALUE         lpSecurityAttributes
  26.                     BY REFERENCE     hregkey
  27.                     BY REFERENCE     neworused
  28.              RETURNING retval
  29.    
  30.      DISPLAY "Resultado de la funcion: " , RETVAL
  31.      DISPLAY "Resultado neworused:     " , neworused
  32.      


Y para marearos más aún, este también :lamet: :D

Código COBOL:
  1.  ENVIRONMENT     DIVISION.
  2.  DATA            DIVISION.
  3.  WORKING-STORAGE SECTION.
  4.  01  INT IS TYPEDEF                      BINARY-LONG.
  5.  
  6.  01  HKCU                                TYPE INT VALUE h"80000001".
  7.  01  Reserved                            TYPE INT VALUE 0.    *> Reserved
  8.  01  NULO                                TYPE INT VALUE 0.    *> NULO
  9.  01  REG_OPTION_NON_VOLATILE             TYPE INT VALUE 0.    *> dwOptions
  10.  01  KEY_ALL_ACCESS                      TYPE INT VALUE 983103.  *> samDesired    HEX F003F
  11.  01  lpSecurityAttributes                TYPE INT VALUE 0.    *> lpSecurityAttributes
  12.  01  hregkey                             TYPE INT VALUE 0.    *> phkResult
  13.  01  neworused                           TYPE INT VALUE 0.    *> lpdwDisposition recibe 1 La clave no existía y fue creada , recive 2 si existía y simplemente se                       abrió sin cambiarla    
  14.        
  15.  01 subkey                               PIC X(80) value "Software\PruebaSOFT" & X"00".                      *> lpSubKey  
  16.      
  17.  01 retval                               TYPE INT.               *> retorno de la func
  18.  PROCEDURE       DIVISION.
  19.      CALL "RegCreateKeyExA" WITH stdcall LINKAGE    
  20.              USING  BY VALUE         HKCU
  21.                     BY REFERENCE     subkey
  22.                     BY VALUE         Reserved
  23.                     BY VALUE         NULO                              
  24.                     BY VALUE         REG_OPTION_NON_VOLATILE
  25.                     BY VALUE         KEY_ALL_ACCESS
  26.                     BY VALUE         lpSecurityAttributes
  27.                     BY REFERENCE     hregkey
  28.                     BY REFERENCE     neworused
  29.              RETURNING retval
  30.    
  31.      DISPLAY "Resultado de la funcion: " , RETVAL
  32.      DISPLAY "Resultado neworused:     " , neworused
  33.      

Josber 21 de octubre de 2022 15:48

Cita:

Citación del post de Kuk (Mensaje 8197)
A ver chavales, a mi este código me funciona en PowerCOBOL v10.1 :yess:

A mí no me funciona ese código, será por ser PWC9 y tener un pequeño fallo tocawebs el compilador, no sé si a otros les funcionará

Un salu2.-

Josber 21 de octubre de 2022 20:38

Vale @Kuk, ahora comprendo lo de big y little_endian, en ambos casos, les "da la vuelta", pensaba que sólo lo hacía en el caso de big_endian y que con el otro, lo almacenaba tal y como estaba, de todas maneras, sigo sin verle la utilidad al tema de darles la vuelta a los valores, supongo que alguna tendrá, por supuesto.

Un saludo y mil gracias.-

Kuk 24 de octubre de 2022 09:40

@Josber, es al revés :D en Big-Endian es tal cual, en Little-Endian se le da la vuelta. ;)

Las razones... pues aquí se citan por lo que veo: architecture - What is the advantage of little endian format? - Software Engineering Stack Exchange

Josber 24 de octubre de 2022 09:58

Cita:

Citación del post de Kuk (Mensaje 8212)
@Josber, es al revés :D en Big-Endian es tal cual, en Little-Endian se le da la vuelta. ;)

Las razones... pues aquí se citan por lo que veo: architecture - What is the advantage of little endian format? - Software Engineering Stack Exchange

Es verdad, lo he puesto al revés pero, con tanto ver, mirar, probar ... al final, te haces la picha un lío :loco: :loco:, y sí, ahora que lo he leído, le veo más utilidad, no había pensado yo en ese tema, pero es correctísimo y muy lógico.

Un salu2.-


La franja horaria es GMT +2. Ahora son las 14:49.

Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.