|
Accueil
Nouvelles
Profil
Contact
Half-Life
Musique
PCASTL
Informatique
Vidéos
Lecture
OpenGL
Éléments
sids du C64
Liens
|
|
Opérateurs
Types de données
Fonctions internes
Structure de l'arbre
Traitement par lots
Exemples
Interpréteur
|
|
Exemple d'une librairie Dans un fichier nommé main.c : #include <windows.h>
#include <math.h>
#include <string.h>
typedef struct
{
double x;
double y;
} point;
typedef struct
{
point vertices[3];
double perimeter;
float extra;
} triangle;
BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved)
{
return TRUE;
}
double distance(point a, point b)
{
return sqrt((a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y));
}
__declspec(dllexport) int dll_demo(int n1, int n2, float copy, triangle* t,
double* avgx, double* avgy, char* str)
{
t->perimeter = 0.0;
t->perimeter += distance(t->vertices[0], t->vertices[1]);
t->perimeter += distance(t->vertices[1], t->vertices[2]);
t->perimeter += distance(t->vertices[2], t->vertices[0]);
t->extra = copy;
*avgx = (t->vertices[0].x + t->vertices[1].x + t->vertices[2].x) / 3.0;
*avgy = (t->vertices[0].y + t->vertices[1].y + t->vertices[2].y) / 3.0;
strcpy(str, "done");
return n1 + n2;
}
Sur la ligne de commande : cl main.c /LD /O2 /Fedll_demo.dll
Dans l'interpréteur : test_dll_demo.astl.
Les appels à une fonction dans une librairie retourne un object PCASTL toujours avec les membres suivants.
|
|
Mobile
|