AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / WLanguage / Funciones WLanguage / Funciones estándar / Funciones de Windows / Funciones varias de WINDEV
  • Desactivando el JITc
  • Optimización de las llamadas externas
  • Gestión de errores
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
Solía hacerlo:
  • averiguar y/o modificar el comportamiento de la aplicación o sitio cuando se generan algunos errores. Según el modo de tiempo de ejecución seleccionado, estos errores pueden ignorarse o pueden generar algunos mensajes de error. En algunos casos, la función ExecutionMode permite restaurar el comportamiento de WINDEV 5.5.
  • optimizar las llamadas a las funciones declaradas externamente. Se utiliza para optimizar la velocidad de ejecución de la aplicación en 2 casos:
    • Procedimientos declarados externamente
    • Los códigos compilados dinámicamente, llaman a un procedimiento global o local del proyecto.
  • averiguar y/o modificar el uso de la JITc por parte de la aplicación. La aplicación utiliza JITc por defecto. Sólo se puede desactivar.
  • averiguar y/o modificar el modo de gestión de las referencias bajas para todos los objetos instanciados.
Ejemplo
// Test mode?
IF InTestMode() = True THEN
ExecutionMode(NormalMode)
ELSE
// Apply the operating mode of WINDEV 5.5  
// to avoid displaying some errors
ExecutionMode(PermissiveMode)
END
Sintaxis

Recuperando el modo de ejecución actual Ocultar los detalles

<Result> = Modo de ejecución()
<Result>: Combinación de constantes enteras
Modo de ejecución actual de la aplicación o del sitio:
Llamadas ExternasOptimizadasOptimiza la gestión de llamadas externas a los procedimientos. Este parámetro está asociado a una de las dos constantes siguientes.
WEBDEV - Código Servidor Esta constante no está disponible.
DisableOptimizedExecutionJITc (Just In Time compilation) está desactivado.
ForceDestructorNonDynamicObjectFuerza la destrucción de objetos no dinámicos (incluso si se ha tomado una referencia fuerte).
modeFormerOperatingModeDurationLas propiedades de Duración mantienen el modo de funcionamiento utilizado en la versión 12.
Modo normalLos errores que se han producido generan mensajes de error.
Modo PermisivoSe ignoran los errores que se han producido (modo WINDEV 5.5 o WEBDEV 1.5).

Modificar el modo de ejecución actual Ocultar los detalles

<Result> = Modo de ejecución(<New runtime mode>)
<Result>: Constante de tipo Integer
Modo de ejecución de la aplicación o sitio después de la modificación.
Llamadas ExternasOptimizadasOptimiza la gestión de llamadas externas a los procedimientos. Este parámetro está asociado a una de las dos constantes siguientes.
WEBDEV - Código Servidor Esta constante no está disponible.
DisableOptimizedExecutionJITc (Just In Time compilation) está desactivado.
ForceDestructorNonDynamicObjectFuerza la destrucción de objetos no dinámicos (incluso si se ha tomado una referencia fuerte).
modeFormerOperatingModeDurationLas propiedades de Duración mantienen el modo de funcionamiento utilizado en la versión 12.
Modo normalLos errores que se han producido generan mensajes de error.
Modo PermisivoSe ignoran los errores que se han producido (modo WINDEV 5.5 o WEBDEV 1.5).
<New runtime mode>: Constante de tipo Integer
Nuevo modo de tiempo de ejecución a aplicar.
Llamadas ExternasOptimizadasOptimiza la gestión de llamadas externas a los procedimientos. Este parámetro está asociado a una de las dos constantes siguientes.
WEBDEV - Código Servidor Esta constante no está disponible.
DisableOptimizedExecutionDesactiva la JITc (compilación de Just In Time).
ForceDestructorNonDynamicObjectFuerza la toma de baja referencia para todos los objetos.
modeFormerOperatingModeDurationLas propiedades de Duración mantienen el modo de funcionamiento utilizado en la versión 12.
Modo normalLos errores que se han producido generan mensajes de error.
Modo PermisivoSe ignoran los errores que se han producido (modo WINDEV 5.5 o WEBDEV 1.5).
Observaciones
WINDEVReportes y ConsultasCódigo de Usuario (UMC)

Desactivando el JITc

Para desactivar la tecnología JIT en una aplicación, se recomienda utilizar ExecutionMode con la constante DisableOptimizedExecution en el código de inicialización del proyecto. En este caso, sólo los elementos cargados antes de ejecutar el código de inicialización del proyecto (componentes, conjuntos de procedimientos, clases) utilizarán el JITc.
Para desactivar JITc para una aplicación WINDEV (por ejemplo, el problema causado por JITc), se recomienda modificar (o crear) el archivo <Nombre ejecutable>.WX. Este fichero debe encontrarse junto al ejecutable de la aplicación y debe contener la siguiente información:
[WD_EXECUTION]
OPTIM_EXECUTION=0

Optimización de las llamadas externas

Atención: Cuando se migra un proyecto de la versión 5.5, el modo permisivo se añade automáticamente al código de inicialización del proyecto durante la migración.. La siguiente línea de código le permite tener en cuenta la optimización de las llamadas externas:
ExecutionMode(PermissiveMode + ExternalCallsOptimized)

Gestión de errores

El tabla a continuación presenta el comportamiento de la aplicación de acuerdo a los errores ocurridos:
Caso de errorModo PermisivoModo normal
Lectura de un índice fuera del rango de una Tabla, List Box o control Combo Box.
Ejemplos:
s = ListaA[-1]
n = Lista B[56]...Color
El programa devuelve '0' o una cadena vacía (""") dependiendo de la propiedad utilizada.Se visualiza un error de ejecución.
Ejemplo:
"índice inválido: [-1]".
Escribir en una índice negativa de un List Box, Tabla o control Combo Box.
Ejemplo:
Lista[-1] = "Smith"
La línea de código es ignoradaSe visualiza un error de ejecución.
Ejemplo:
"índice inválido: [-1]"
Escribir en una índice demasiado grande de un List Box, Tabla o control Combo Box.
Ejemplo:
LIST[54] = "Smith"
Un elemento vacío se inserta al final de la control List Box y toma el valor especificado.Se visualiza un error de ejecución.
Ejemplo:
"índice inválido: [ 54]"
Usando Abrir, OpenMobileWindow, OpenChild, OpenSister con un nombre de ventana que contiene caracteres de espacio adicionales.
Ejemplo:
Abierto ("WIN1")
Los caracteres de espacio adicionales se eliminan.Se visualiza un error de ejecución.
Ejemplo:
"La ventana de'WIN1' no se encuentra"
Usando la funciones para la gestión de menús emergentes y desplegables con un número de menú que no existe.
Ejemplo:
MenúMark(WIN1, 54645)
La función devuelve '0' y ErrorInfo está llena.Se visualiza un error de ejecución.
Ejemplo:
"La opción especificada [ 54645] no existe en el menú"
Usando a Right y Left con un número negativo de caracteres para extraer.
Ejemplo:
Left("abcdef", -1)
La función devuelve una cadena vacía (""").La función devuelve EOT y ErrorInfo se llena.
Usando Middle con una posición de inicio que es negativa y / o con un número negativo de caracteres para extraer.
Ejemplo:
Middle("abcdef", -2, -4)
La función:
  • inicia la extracción desde el principio de la cadena si la posición inicial es negativa.
  • devuelve la cadena completa de la fuente.
La función devuelve EOT y ErrorInfo se llena.
Componente: wd290vm.dll
Versión mínima requerida
  • Versión 9
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 27/05/2022

Señalar un error o enviar una sugerencia | Ayuda local