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()
.
Vous avez toujours voulu savoir comment ajouter des fonctions à DBPro sans jamais oser le demander ?
Eh bien je vais vous le dire.
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()
.
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.
La "String Table" permet à DBPro de savoir quelles fonctions il peut utiliser.
Clic droit dans l'explorateur de solution > Ajouter > Ajouter une ressource.
Choisissez "String Table" dans le menu et cliquez sur "nouveau".
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
nom : nom de la commande sous DBPro (en majuscules)
retour : type de la fonction de retour comme "paramètres"
paramètres : liste des paramètres dans l'ordre (S = string, L = entier, F = réel, D = dword)
fonction dans la DLL : voir plus bas
commentaires (facultatif) : ce que vous voulez
Pour la fonction "BoiteDialogue", j'obtiens ceci :
BOITE DIALOGUE%SS%?BoiteDialogue@@YAXPBD0@Z%boite de dialogue
BOITE DIALOGUE : nom de votre fonction sous DBPro
SS : paramètres de votre fonction (ici deux chaînes de caractères)
?BoiteDialogue@@YAXPBD0@Z : votre fonction dans la DLL
boite de dialogue : commentaire
Passons à la fonction "Cube" :
nous allons lui donner un nom très original : CUBE ;
comme elle retourne une valeur, il faut faire suivre son nom de [ ;
ensuite vient le type de retour suivi du paramètre : LL (entier,entier) ;
enfin la fonction dans la DLL, on prendra "?Cube@@YAHH@Z" pour l'exemple.
Essayez de trouver vous-mêmes.
CUBE[%LL%?Cube@@YAHH@Z
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 !
Maintenant vous pouvez vous ajouter des fonctions à DBPro, amusez-vous bien. ;)