Levans Utilisateur confirmé: Rang *****
Messages : 1598 Localisation : France -> Île de France -> Essonne -> Gif sur Yvette
| Sujet: problème dll... Dim 19 Nov 2006 - 6:52 | |
| voilà, j'ai voulu m'entrainer aux dll. j'ai donc fait une petite dll comme ça : main.c - Code:
-
#include <stdio.h> #include <stdlib.h> #include "dll.h"
__declspec (dllexport) float addition(float entier1, float entier2) { float i; i=entier1+entier2; return i; }
dll.h - Code:
-
__declspec (dllexport) float addition(float entier1, float entier2); et dans gm : - Code:
-
global.idll=external_define('sample.dll','addition',dll_stdcall,ty_real,2,ty_real,ty_real);
et il me met "error defining an external fonction". where is the problem ??? |
|
[TheDarkTiger] Modérateur
Messages : 7420 Localisation : Essonne
| Sujet: Re: problème dll... Dim 19 Nov 2006 - 13:58 | |
| désolé, je n'y connais rien, je pense que seuls ceux qui s'y connaissent en C ou C++ peuvent te répondre (par exemple Daminetreg) _________________ Bonne chance pour vos projets actuels ! Prêt à aider ceux qui en ont besoin ^^ l'antiqueBienvenue au 2630eme utilisateur : Mike Kennedy ! |
|
@Chris@ Utilisateur confirmé: Rang **
Messages : 485 Localisation : Montbéliard
| Sujet: Re: problème dll... Dim 19 Nov 2006 - 14:20 | |
| |
|
Levans Utilisateur confirmé: Rang *****
Messages : 1598 Localisation : France -> Île de France -> Essonne -> Gif sur Yvette
| Sujet: Re: problème dll... Dim 19 Nov 2006 - 15:06 | |
| justement, je me suis basé sur cet example... |
|
Kryptos Utilisateur confirmé: Rang ****
Messages : 1058 Localisation : très loin dans un univers étrange Projet Actuel : Space Racer, un jeu multijoueur en ligne réalisé avec Unity 3D.
| Sujet: Re: problème dll... Mar 21 Nov 2006 - 1:06 | |
| Perso je ne vois pas où est l'erreur. Bien que n'étant pas un pro de la programmation C, j'ai créé facilement l'exemple MyDLL. A priori, je ne vois pas d'erreur de syntaxe. Vérifie les points suivants : - Il s'agit bien d'une compilation de DLL => vérifier les paramètres du compilateur.
- La DLL s'appelle bien sample.dll.
- Elle est présente dans le même dossier que le fichier source .gm6.
- Essaye le protocole d'appel dll_cdecl à la place de dll_stdcall. Je ne connais pas fondamentalement la différence, mais on ne sait jamais.
Je vais essayer de mon côté de compiler ta DLL et d'observer le résultat. _________________ Venez tester la beta de notre jeu de course Space Racer (conçu avec Unity 3D) |
|
Kryptos Utilisateur confirmé: Rang ****
Messages : 1058 Localisation : très loin dans un univers étrange Projet Actuel : Space Racer, un jeu multijoueur en ligne réalisé avec Unity 3D.
| Sujet: Re: problème dll... Mar 21 Nov 2006 - 1:40 | |
| J'ai résolu les problèmes. Déjà il faut utiliser des valeurs doubles et non des virgules flottantes (float) pour les réels. Ensuite il n'y avait pas d'autres erreurs donc si tu as eu ce message c'est que tu as mal écrit quelque chose. Je n'ai toujours pas trouvé la différence entre dll_stdcall et dll_cdecl. Cela fonctionne dans les deux cas. Voici la solution que j'ai appelée MyDLL2 (fournie avec source et fichier gm6). Bonne continuation dans la programmation de DLLs. http://www.zshare.net/download/mydll2-zip.html_________________ Venez tester la beta de notre jeu de course Space Racer (conçu avec Unity 3D) |
|
Contenu sponsorisé
| Sujet: Re: problème dll... | |
| |
|