Fonction dans DLL [Résolu]

Signaler
Messages postés
152
Date d'inscription
lundi 24 mars 2003
Statut
Membre
Dernière intervention
6 janvier 2009
-
Messages postés
207
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
2 novembre 2006
-
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

Messages postés
207
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
2 novembre 2006

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);

}
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
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++
Messages postés
700
Date d'inscription
mardi 30 décembre 2003
Statut
Membre
Dernière intervention
27 janvier 2009
4
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+
Messages postés
152
Date d'inscription
lundi 24 mars 2003
Statut
Membre
Dernière intervention
6 janvier 2009

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"