Fonction dans DLL

Résolu
guitoulefoux Messages postés 152 Date d'inscription lundi 24 mars 2003 Statut Membre Dernière intervention 6 janvier 2009 - 29 août 2005 à 10:51
simtiers Messages postés 207 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 2 novembre 2006 - 29 août 2005 à 11:32
Bonjour,
J'ai une petite question sur les DLL.
J'ai fais une DLL avec un fonction "StartProcess".
J'arrive bien à appeler la fonction "StartProcess" d'un autre exe, mais une fois la fonction "StartProcess" lancée, celle-ci n'execute pas ma fonction "test".

Ma question est la suivante:
Est-il possible d'executer une fonction interne à la DLL par cette meme DLL ?
En esperant avoir été clair, je vous remercie par avance de vos réponses.

Exemple du code:

#include <windows.h>
extern "C" int __declspec (dllexport) StartProcess()
{
MessageBox (NULL, "1", "1", MB_ICONINFORMATION);
test();
return 0;
}


void test()
{
MessageBox (NULL, "2", "2", MB_ICONINFORMATION);
}

GuitouLeFoux
"Le secret du sage est de briller dans l'ombre"

4 réponses

simtiers Messages postés 207 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 2 novembre 2006
29 août 2005 à 11:32
Code corrigé :

#include <windows.h>



// prototype de la fonction test

void test();



// fonction exportée par la DLL

extern "C" int __declspec (dllexport) StartProcess()

{

MessageBox (NULL, "1", "1", MB_ICONINFORMATION);

test();

return 0;

}



// "corps" de la fonction test()

void test()

{

MessageBox (NULL, "2", "2", MB_ICONINFORMATION);

}
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
29 août 2005 à 10:57
Certain que la messagebox 2 doit s'afficher, vérifie qu'elle n'est pas cachée par une autre fenêtre vu qu'elle n'a pas de handle en 1er param.

ciao...
BruNews, MVP VC++
0
cosmobob Messages postés 700 Date d'inscription mardi 30 décembre 2003 Statut Membre Dernière intervention 27 janvier 2009 4
29 août 2005 à 10:59
salut,

c'est évidemment possible, va voir sur le site ya un paquet d'exemples de DLL...

ton truc devrait marcher, mais bon tu donnes trop peu d'informations pour être aidé ...



a+
0
guitoulefoux Messages postés 152 Date d'inscription lundi 24 mars 2003 Statut Membre Dernière intervention 6 janvier 2009
29 août 2005 à 11:17
Merci de vos réponses, je viens d'essayer de compiler le bout de code indiqué ci-dessus.
Mais cela ne marche.
Est-vous bien sure que ce code devrait fonctionner? (j'utilise Devcpp)

Voici un récapitulatif des erreurs:


test.cpp: In function `int StartProcess()':
test.cpp:6: error: `test' undeclared (first use this function)
test.cpp:6: error: (Each undeclared identifier is reported only once for each function it appears in.)
test.cpp: In function `void test()':
test.cpp:11: error: `void test()' used prior to declaration
test.cpp:12: error: expected `)' before ';' token
test.cpp:12: error: expected primary-expression before ',' token
test.cpp:12: error: expected `;' before ')' token


make.exe: *** [test.o] Error 1


Exécution terminée

GuitouLeFoux
"Le secret du sage est de briller dans l'ombre"
0
Rejoignez-nous