00 Votos

Lazarus: Detectar el Sistema Operativo (Compiler Switch)

Consejo de Delphieño | Última actualización el 29/04/2021 | Creado el 01/10/2020

Al escribir aplicaciones para múltiples sistemas operativos usando Lazarus, puede ser necesario usar un código diferente o incluir diferentes unidades en algunos puntos dependiendo del sistema operativo actual. Sin embargo, por supuesto, no desea ajustar el código una y otra vez al sistema actual en el que está compilando. Nos gustaría tener una solución para usar el mismo código en todos los sistemas, aunque hay algunas partes que dependen del sistema.

Entonces, en este consejo, me gustaría mostrarle una forma de cómo mostrarle al compilador que cierto código solo debe aplicarse a un sistema específico. Puede usar las directivas del compilador {$IFDEF}, {$ENDIF} así como {$ELSE} para esto.

Primero, eche un vistazo a un pequeño ejemplo:

{$IFDEF WINDOWS}
   {$IFDEF WIN32}
      showmessage('32 Bit Windows');
   {$ENDIF}

   {$IFDEF WIN64}
      showmessage('64 Bit Windows');
   {$ENDIF} 
{$ELSE}
   showmessage('No Windows.');
{$ENDIF}

En este ejemplo, primero usamos una condición IF para verificar si estamos en un sistema Windows. Si es así, buscamos si es un Windows de 32 o 64 bits y lo alertamos. Si no es así, avisamos con un mensaje de que no es Windows.

Se pueden combinar las directivas como desee y puede utilizarlos donde desee. Por lo tanto, no solo puede hacer que el código sea accesible para un sistema específico, sino que también puede establecer u omitir unidades en la cláusula USES según el sistema.

Lista de Directivas del Sistema Operativo

En esta tabla, he enumerado las directivas más importantes para cada sistema.

SistemaDirectiva
Todos los sistemas Windows{$IFDEF WINDOWS}
Windows 32 Bit{$IFDEF WIN32}
Windows 64 Bit{$IFDEF WIN64}
Windows CE{$IFDEF WINCE}
Linux{$IFDEF LINUX}
Mac OS X{$IFDEF DARWIN}
Classic Macintosh{$IFDEF MAC}
OS2{$IFDEF OS2}
FreeBSD{$IFDEF FREEBSD}
NetBSD{$IFDEF NETBSD}
Amiga{$IFDEF AMIGA}
Atari{$IFDEF ATARI}
PalmOS{$IFDEF PALMOS}

Para obtener más instrucciones, visite Compiler Defines During Compilation (definiciones del compilador durante la compilación) en freepascal.org. Con esas directivas, puede, por ejemplo, detectar la CPU en uso y muchas otras cosas.

ResponderPositivoNegativo

Sobre el Autor

AvatarEl autor aún no ha agregado una breve descripción del perfil.
Ver Perfil

 

Temas Relacionados

Cambiar la Fecha de Archivo

Tutorial | 0 Comentarios

Aviso Importante

Por favor tenga en cuenta: Las contribuciones publicadas en askingbox.com son contribuciones de los usuarios y no deben reemplazar el asesoramiento profesional. No son verificados por independientes y no reflejan necesariamente la opinión de askingbox.com. Aprende más.

Participar

Haga su propia pregunta o escriba su propio artículo en askingbox.com. He aquí cómo.