export de fonctions d'une DLL en C (ou problème d'import, j'en sais rien)
Bonjour à tous !
J'ai besoin d'aide pour exporter les fonction d'une DLL que j'ai créé.
ou les importer dans un autre programme, je sais pas trop :S
en gros, j'ai ça :
fichier.h
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
#ifdef MADLL_EXPORTS
#define MADLL_API __declspec(dllexport)
#else
#define MADLL_API __declspec(dllimport)
#endif
#ifdef ___cplusplus
extern "C"
{
#endif
MADLL_API int Init(int Ma_Variable);
#ifdef ___cplusplus
}
#endif |
fichier .cpp
Code:
1 2 3 4 5 6
|
#include "Mon_Fichier.h"
int Init(int Ma_Variable)
{
// mon code qui fait qques trucs
} |
fichier .def
Code:
1 2 3 4 5 6 7
|
; fichier.def : déclare les paramètres de module pour la DLL.
LIBRARY "mon_Projet"
EXPORTS
Init = ?Init@@YAHHHHHHHH_N00@Z |
Tout cela sous visual studio.net 2003.
Tout ce que j'ai essayé me donne des erreurs, là j'en suis à "liaison DLL incohérente" depuis que j'ai modifié mon .h pour ce qu'il y a au dessus, mais ce n'est qu'un warning ! :/
Lorsque je regarde la DLL avec "quick view plus", j'obtient mes fonctions "décoré" (dûes au __declspec(dllexport)) et mes fonctions "normales" (dûes au .def)
donc "logiquement", la DLL est bonne ?!
quand j'essaye de l'inclure à un programme pour la tester, j'obtient une erreur LNK2001, symbole externe non résolu!
là je sèche.
je fourni bien le .h, le .lib, je copie la DLL dans le répertoire du projet, ainsi que dans \system32\.
mais il ne veux pas l'utiliser....
Est-ce que quelqu'un saurait m'aider ?
SVP