Version en ligne

Tutoriel : Ajouter des fonctions à DBPro

Table des matières

Ajouter des fonctions à DBPro
Base du projet
Ajout des fonctions
DLL String Table
Testons maintenant dans DarkBasic

Ajouter des fonctions à DBPro

Base du projet

Vous avez toujours voulu savoir comment ajouter des fonctions à DBPro sans jamais oser le demander ?
Eh bien je vais vous le dire.

Base du projet

Ajout des fonctions

Lancez Visual Studio, faites "Nouveau projet > projet Win32 > dans paramètre de l'application (cochez "DLL") > Valider".

Tout le code sera à mettre dans le fichier nombre_de_votre_projet.cpp après la fonction DllMain().


Ajout des fonctions

Ajout des fonctions

Base du projet DLL String Table

Les fonctions que vous voudrez ajouter devront être de la forme :

__declspec(dllexport) type_de_retour nom_de_la_fonction(parametres)
{ 
        corps de la fonction
}

En fait, ce sont de simples fonctions précédées de __declspec(dllexport)__declspec(dllexport).

Pour ce tutoriel, je vais utiliser ces deux fonctions :

// fonction BoiteDialogue, affiche une boîte de dialogue
__declspec(dllexport) void BoiteDialogue(LPCTSTR titre,LPCTSTR message)
{
        if(titre && message) // si le titre et le message ne sont pas vides
                MessageBox(NULL,message,titre,MB_OK | MB_ICONINFORMATION); // on affiche une boîte de dialogue
}

// fonction cube, retourne le cube de la valeur passé en paramètre
__declspec(dllexport) int Cube(int val)
{
        return (val*val*val);
}

Copiez ce code après la fonction DllMain() puis lancez la compilation.


Base du projet DLL String Table

DLL String Table

Ajout des fonctions Testons maintenant dans DarkBasic

La "String Table" permet à DBPro de savoir quelles fonctions il peut utiliser.

Clic droit dans l'explorateur de solution > Ajouter > Ajouter une ressource.

Image utilisateur

Choisissez "String Table" dans le menu et cliquez sur "nouveau".

Image utilisateur

Le fichier .rc créé s'ouvre avec une valeur IDS_STRING101 et ayant 101 comme valeur.
Cliquez sur cette ligne dans la colonne "légende", ce que vous entrerez dans le champ apparu doit avoir une syntaxe très stricte.

Voici la syntaxe :

nom([%retour)(%paramètres)%fonction dans la DLL%commentaires

Pour la fonction "BoiteDialogue", j'obtiens ceci :

BOITE DIALOGUE%SS%?BoiteDialogue@@YAXPBD0@Z%boite de dialogue

Passons à la fonction "Cube" :

Essayez de trouver vous-mêmes.

CUBE[%LL%?Cube@@YAHH@Z


Ajout des fonctions Testons maintenant dans DarkBasic

Testons maintenant dans DarkBasic

DLL String Table

Première chose à faire, récupérer la DLL générée qui doit se trouver dans :

Citation : PC

C:\Documents and Settings\****\Mes documents\Visual Studio Projects\***\(Debug ou Release)

et la déplacer dans le dossier plugins-user de DarkBasic :

Citation : PC

C:\Program Files\Dark Basic Software\Dark Basic Professional\Compiler\plugins-user

C'est fait ? Alors lancez DarkBasic, puis créez un nouveau projet et mettez-y le code suivant :

A = CUBE(5)
BOITE DIALOGUE "Cube de A","Le cube de A=5 est : "+str$(A)

Appuyez sur F5 et voyez le résultat !

Image utilisateurCliquez sur l'image

DLL de test et projet VC++

Maintenant vous pouvez vous ajouter des fonctions à DBPro, amusez-vous bien. ;)


DLL String Table