begin process at 2012 05 29 11:09:45
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Dll et pointeur de fonction


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Dll et pointeur de fonction

lundi 16 août 2004 à 12:05:46 | Dll et pointeur de fonction

dulac02

salut à tous
J un gros pb avec des pointeurs de fonctions :
Je charge une dll et plus particulièrement une fonction run
celle-ci reçoit commme argument un pointeur de fonction
voici mon bout de code :

executable :
//pointeur donné a run
typedef void (pfn) (char*,bool, bool);

HMODULE hm = 0;

//déclaration du type : pointeur de fonction (il pointera sur "run")
typedef void (*PF) (pfn);

//ce code vient de vieuxlion
int ChargeDll ( char *plugIn )
{
char *buffer = new char[600];

if(hm) //libération de l'ancienne dll
{
int rc = FreeLibrary(hm);
if (!rc) AddText("Erreur FreeLibrary\r\n",0,1);
hm=0;
}
hm = LoadLibrary(plugIn);
if (!hm)
{
AddText("Erreur, Dll non trouvée\r\n",0,1);
return 0;
}
//tous les plug-ins auront la méthode run(pfn)
PF run = (PF)GetProcAddress(hm, "run");
if (run==NULL)
{
strcpy(buffer,"Echec, la dll ");
strcat(buffer,plugIn);
strcat(buffer," n'est pas compatible !\r\n");
AddText(buffer,0,1);
return 0;
}

run(AddText);
return 1;
}

et la dll :

typedef void (pfn) (char*,bool, bool);


extern "C" PLUGIN void run( pfn pf)
{
typedef int (__stdcall* lpAddText) (char* szMsg, bool i , bool o);
lpAddText AddText;
AddText = (lpAddText) pf;
AddText("Petit coucou de la dll",0,1);
}

Lorsque je lance mon exe, j'ai l'erreur suivante :
The value of ESP was not properly saved across a function call, this is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention

Qq'un peut me dire pourquoi ?
Merci d'avance
lundi 16 août 2004 à 12:29:44 | Re : Dll et pointeur de fonction

BruNews

Administrateur CodeS-SourceS
Si DLL exporte en __stdcall, faut le dire aussi a ton compilo dans le prog qui appelle la fonction.

executable :
//pointeur donné a run
typedef void (__stdcall pfn) (char*,bool, bool);

ciao...
BruNews, Admin CS, MVP Visual C++


Cette discussion est classée dans : dll, char, run, hm, addtext


Répondre à ce message

Sujets en rapport avec ce message

C++ DLL retour de paramettre [ par PRZYBYLSKI ] Bonjour,Je suis débutant en C++.J'essaye de trouver le moyen de faire une chose qui devrait être très simple.Avoir une application console qui envoi u HELP! DEV-C++ et Dll [ par couriousous ] HEllo!Comment on crée une Dll que l'on peut inclure dans Visual Basic avec dev-c++??? au départ j'ai une fonction char * mafonction(char *) et je veux Convertir des strings [ par UnExPeCtEdSpy ] Bonjour, Présentation du pb:Je ne suis plus trop familier du c++ mais j'ai du m'y remettre pour utiliser un bout de code en tant que DLL au service d' passage de chaines de caractères en paramètre d'une DLL C vers VB [ par jopop ] Salut tous les coders,soyons brefs, soyons concis.ma fonction :extern "C" void __stdcallMakeLineEx(const char* folder,char* file,char* sout); - folder Pb d'utilisation d'une DLL avec VB (allocation de memoire) [ par jeralex ] Bonjour à tous,Voila mon problème : je suis chargé d'ecrire une DLL en c permettant de recuperer les tag dans un fichier mp3. Quand j'appelle les fonc lire char* a dans Dll int _stdcall runappli(char* a) [ par Fwdavy ] Je realise une Dll c++, pour être lue par VB du style :int _stdcall runappli(char* a, char* b,int c) La Dll se lance bien mais je voudrais être sur qu DLL et CString [ par DMK04 ] Bonjour,J'ai crée une DLL avec une fonction, qui affiche plusieurs fois la même chaîne, une fois en tant que char *, une fois en tant que CString * pu Petit probleme avec injection de dll [ par ghostichou ] Tout d'abord je tiens à vous préciser que j'ai deja regarder les autres sujets parlant de ça sur code sources mais même en les relisant je n'arrive pa pb d'appel de fonctions (DLL en linkage dynamique) [ par Gendal67 ] Bonsoir all,Je souhaiterai faire un appel de fonction définie dans un fichier .DLL de manière dynamque etc...jusque la pas de pb, mais je en comprend aide pour une dll [ par baby3378 ] bonjour a tous, voila j'ai trouvé ce code sur cpp, (que je trouve remarquable )mais quand je l'essai sur mon Dev C++ il me di : invalid convertion fro


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,201 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales