Passa al contenuto principale

CHECKDLL

DesktopWeb

La specifica verifica l'esistenza di una DLL e può restituirne il percorso.

note

Per poter specificare, da programma BC, una path di ricerca delle DLL di programma diverso da quello normalmente utilizzato in fase di esecuzione dei programmi e disponibile la variabile di utilizzo interno: PHDLL$[256]. La variabile PHDLL$ è impostata al valore di PHP ogni volta che viene letto il file PROFWS<stazione>. Nel caso in cui si abbia la necessità di forzare il percorso di ricerca, si potrà agire sulla variabile PHDLL$ valorizzandola in modo opportuno. La variabile potrà contenere più direttive, separate dal carattere ';' e la ricerca della DLL prenderà in considerazione queste direttive in ordine. In caso di errore nel caricamento della stessa (DLL non trovata) si procederà a ricercarla secondo il percorso sopra elencato.
Parallela alla variabile PHDLL$ esiste la variabile PHDLLP$[256] che contiene il percorso di ricerca delle DLL personalizzate.
La variabile PHDLLP$ è impostata al valore di PHB$+'\PROGPERS\' in avvio del programma.
Il criterio di ricerca delle DLL può essere sintetizzato come segue:

  1. le cartelle indicate in PHDLLP$;
  2. le cartelle indicate in PHDLL$;
  3. la cartelle da cui l'applicazione è stata lanciata;
  4. la cartelle corrente;
  5. la cartelle di sistema di Windows (per Windows NT/2000/XP il nome della directory è System32);
  6. la cartelle di sistema di Windows a 16-bit (il nome della directory è System);
  7. la cartelle di Windows;
  8. le cartelle elencate nella variabile d'ambiente PATH.
    La ricerca della DLL avviene inizialmente nelle cartelle indicate da PHDLLP$. In caso di errore nel caricamento della stessa (DLL non trovata) si procederà a ricercarla secondo il percorso sopra elencato. Solitamente la ricerca termina al punto 2, in quanto le DLL di prodotto sono presenti nella direttiva PHDLL$.

Parametri

ParametroDefinizioneI/OInformazioniVersione traduttoreSMP
NOMEStringaINObbligatorioDesktopWeb
FUNZIONEStringaINDesktopWeb
DIRStringaOUTDesktopWeb
PERSInteroINDesktopWeb
VERInteroINDesktopWeb
ERROREInteroINDesktopWeb

NOME

StringaINInputObbligatorioObbligatorioValore non necessarioValore non necessarioDesktopWeb

Nome della libreria da controllare, senza estensione.

FUNZIONE

StringaINInputValore non necessarioValore non necessarioDesktopWeb

Specifica la funzione di libreria da controllare.

DIR

StringaOUTOutputValore non necessarioValore non necessarioDesktopWeb

Restituisce il percorso della libreria trovata.

PERS

InteroINInputValore non necessarioValore non necessarioDesktopWeb

Cerca la DLL solo tra i progetti di personalizzazione. Non modifica l'ordine di ricerca, ma può attivare/disattivare percorsi.

VER

InteroINInputValore non necessarioValore non necessarioDesktopWeb

Versione della funzione da cercare.
0 cerca la versione predefinita.

L'utilizzo del parametro implica l'utilizzo del parametro FUNZIONE

ERRORE

InteroINInputValore non necessarioValore non necessarioDesktopWeb
SottoParametri

Consente al programma di intercettare e gestire l'errore restituito dalla funzione.

suggerimento

Utilizzare uno dei metodi GetLastError*() della classe BCContextInfo per ottenere le informazioni dell'errore.

Errori

CodiceDescrizione
25904Attenzione! La libreria {ex.AssemblyName} non esiste. Direttiva corrente: {ex.Directory} L'esecuzione del programma viene terminata.
25903Attenzione! Non e' stata trovata la funzione '{ex.SbcName}' dentro la libreria {ex.AssemblyName}! L'esecuzione del programma viene terminata.
25900Attenzione! Non e' possibile caricare la libreria <Nome Libreria>.DLL! La libreria non e' un'applicazione valida per Windows Il file potrebbe essere danneggiato. Codice di errore NNN. L'esecuzione del programma viene terminata.
25901Attenzione! Non e' possibile caricare la libreria <Nome Libreria>.DLL! La libreria riferisce una o più librerie che non sono state trovate o sono errate. Codice di errore NNN. L'esecuzione del programma viene terminata.
25902Attenzione! Non e' possibile caricare la libreria <Nome Libreria> .DLL! Errore NNN. L'esecuzione del programma viene terminata.
25905Controllo correttezza parametri. Non e' stata indicata alcuna libreria da controllare.

Esempi

Controllo esistenza DLL

 DIM messErr[STRING] = BCContextInfo.GetLastErrorMessage()
DIM dirDLL[STRING] = ""

'@CHECKDLL NOME["BC32SIGN"] DIR[dirDLL] ERRORE[Errore]

If Errore = 0 Then
MESSAGEBOX(#INFO,"Libreria DLL","Trovata la libreria BC32SIGN.dll nella direttiva " + dirDLL)
Else
MESSAGEBOX(#ERRORE,"Libreria DLL","La libreria BC32SIGN.dll non è stata trovata" + messErr)
EndIf