1. Déclaration du contexte HyperFileSQL et des buffers de travail de chaque fichier:
Si l'application doit gérer des fichiers de données, il est nécessaire de déclarer un contexte de travail HyperFileSQL, ainsi qu'un buffer par fichier de données.
Ces déclarations sont effectuées par les lignes suivantes dans le projet Vc60.dsp :
CHFContext gclHF; // Gestion du contexte HyperFileSQL
StVILLE gstVille; // Buffer HF du fichier Ville
stDEPARTEMENT gstDepartement; // Buffer HF du fichier Depart
2. Initialisation des DLL de WINDEV
La première étape pour pouvoir utiliser les éléments développés dans WINDEV est de charger en mémoire les DLL de WINDEV, puis de les initialiser.
Ces opérations sont réalisées par l'appel de la fonction
nWDInit, au début de votre procédure
WinMain comme suit :
if (nWDInit(FALSE)!=WDERREUR_OK) ... // gestion du cas d'erreur
3. Initialisation de HFSQL
Dans le cas où votre application fait appel à une base de données, l'accès à HyperFileSQL doit ensuite être préparé. Le test ci-dessous permet de vérifier si cette initialisation se déroule normalement :
IHFContext * pIHF;
if (!((nWDGetHFContext((void**)&pIHF)==WDERREUR_OK) &&
(gclHF.bInit(pIHF))))
{
// gestion du cas d'erreur
}
4. Chargement de la bibliothèque WINDEV (WDL)
La bibliothèque WINDEV d'extension .WDL contient tous les éléments du projet (fenêtres, états, classes, requêtes, analyse, ...). Il faut donc la charger en mémoire pour faire appel aux composants qu'elle contient.
Le chargement est réalisé par la fonction
nWDOuvreWDL comme suit :
if (nWDOuvreWDL(szWDL)!=WDERREUR_OK)
{
// Bibliothèque non trouvée
}
5. Ouverture de l'analyse du projet et association des buffers avec les fichiers de données
L'ouverture de l'analyse permet de faire appel aux fichiers de données. Une fois cette analyse ouverte avec la fonction HOuvreAnalyse, il ne reste plus qu'à associer les buffers de travail avec les fichiers décrits dans cette analyse :
// Ouverture de l'analyse (WDD contenu dans la WDL)
if (!gclHF.HOuvreAnalyse(szAnalyse,szMotDePasse))
{
// Erreur d'ouverture de l'analyse
}
// Association buffer <-> fichier
gclHF.bAssociate("ville",&gstVille,sizeof(gstVille));
gclHF.bAssociate("departement",&gstDepartement,sizeof(gstDepartement));