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
|