Ver Mensaje Individual
  #3  
Antiguo 15-02-2016
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Ramsay Ver Mensaje
¿ Si esta funcion no existe mostraria un error de todas formas al sistema ?
No mostraría nada, pero no por el bloque try-except sino porque tu aplicación ni siquiera se ejecutaría. La manera en que importas la función (static loading) requiere que la función exista al momento de iniciar la aplicación y, de no ser así, el S.O aborta la carga de la aplicación con un mensaje de error que no puedes interceptar.

Para poder verificar la existencia de la función en tiempo de ejecución debes usar una carga dinámica de la función, usando LoadLibrary y GetProcAddress, de la API de Windows.

También, según leo, en las versiones recientes de Delphi existe la directiva delayed, que agregarías a la declaración de la función:

Código Delphi [-]
function BlockInput(fBlockInput: Boolean): DWORD; stdcall; external 'user32.DLL' delayed;

con lo cual podrías verificar la existencia de la función antes de usarla por primera vez.

// Saludos
Responder Con Cita