begin process at 2012 05 30 05:00:18
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Systeme

 > 

Uttilisation la fonction d'une DLL


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

Uttilisation la fonction d'une DLL

jeudi 5 mai 2005 à 11:09:39 | Uttilisation la fonction d'une DLL

aDebhian

Pour ce faire, j'ai lu msdn, codes-sources et j'en suis arrivé à ceci:

[FONCTION DLL]
extern "C" __declspec(dllexport) int tests(int test)
{
    return test;
}


[EXE]
void loadfunc(void)
{
    int testa;
    HINSTANCE mdll;
    mdll=LoadLibrary("ma_dll.dll");
    typedef int (__stdcall* FUNCPROC)(int test);
    FUNCPROC mfunc;
    mfunc = (FUNCPROC)GetProcAddress((HINSTANCE)mdll,"tests");
    testa=((mfunc)(5));
    printf("Test: %d\n",testa);
}


Le printf fonctionne bien, mais je reçois une erreur fatal quand j'execute l'exe.
Quand je debug l'erreur, c'est toujours à l'offset 00000005 que ça foire ..
L'exe contient QUE l'appel de la dll, et l'erreur fatal n'apparait plus quand je n'uttilise aucun argument dans la fonction de dll

J'ai vraiment tout essayé depuis 2 jours, je ne vois pas qu'est ce qui pourrai faire planter ce foutu code ..

jeudi 5 mai 2005 à 11:30:30 | Re : Uttilisation la fonction d'une DLL

vecchio56

Administrateur CodeS-SourceS
Dans la DLL, tu as oublié de mettre tests en __stdcall, c'est peut être ca
jeudi 5 mai 2005 à 11:35:51 | Re : Uttilisation la fonction d'une DLL

aDebhian

Avec
extern "C" __stdcall int tests(int test)
ou
__stdcall int tests(int test)



Il retourne meme pas le resultat, et il plante
Et puis je pense que extern "C" __declspec(dllexport) est la décoration qui marche (normalement ..)
jeudi 5 mai 2005 à 12:08:12 | Re : Uttilisation la fonction d'une DLL

vecchio56

Administrateur CodeS-SourceS
extern "C" __declspec(dllexport) int __stdcall tests(int test)
jeudi 5 mai 2005 à 12:51:38 | Re : Uttilisation la fonction d'une DLL

aDebhian


Toujours pas, il ne me retourne pas le resultat avec cet deco

jeudi 5 mai 2005 à 13:21:26 | Re : Uttilisation la fonction d'une DLL

vecchio56

Administrateur CodeS-SourceS
Ah bon? Que vaut testa dans le printf?
jeudi 5 mai 2005 à 13:33:23 | Re : Uttilisation la fonction d'une DLL

vecchio56

Administrateur CodeS-SourceS
J'avais oublié qu'en __stdcall les noms de fonctions sont modifiés, a la place de tests tu dois mettre "_tests@4". Sinon tu peux enlever tous les __stdcall (typedef int (* FUNCPROC)(int test);) et dans ce cas le nom de la fonction est "tests"

Dnas ton code de départ, tu avais donc juste un __stdcall en trop dans la définition de FUNCPROC
jeudi 5 mai 2005 à 14:49:01 | Re : Uttilisation la fonction d'une DLL

aDebhian

Je te remercis beaucoup !
msdn sur ce sujet n'a pas été aussi explicite =)


Cette discussion est classée dans : exe, fonction, int, test, dll


Répondre à ce message

Sujets en rapport avec ce message

Exporter une classe dans une DLL... [ par Clovis ] Salut,Je voudrais pouvoir exporter dans une DLL, si c'est possible, les fonctions et les objets du listing suivant. Car, je voudrais, par la suite pou Pour les doués, moi j'en peu plus ! [ par sena ] Salutje voudrais en fait faire un passage de paramètre a une fonction dont un a une valeur par défaut. (puis inclure ca dnas une DLL)Par exemple une f exporter une fonction [ par lahou ] Bonjourest-ce que qqn sait comment faire pour exporter une fonction d'un exe comme on le fait avec une dll avec __declspec(dllexport)En fait je veux f Pointeur sur fonction envoyé par dll [ par MoDDiB ] Voila ce que j'ai fais mais ca ne marche pas :Dll :#include BOOL APIENTRY DllMain(HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved){ retu Exportations de fonction EXE --> DLL [ par rclsilver02 ] Voila. Je suis sur un projet qui pourra gérer des modules. Chaque module se trouver dans une DLL et pourra utiliser des fonction du programme principa créer une dll activeX [ par DARKSIDIOUS ] Bonjour,J'essaye en vain de créer une dll ActiveX sous Visual C++ 6 pour pouvoir récupèrer un objet sous Visual Basic. J'ai donc créer une classe nomm linker une dll sous dev-c++ [ par the diouk ] petite question toute bête mais qui me gêne :j'utilise une DLL, dans ma source il y a bien :#define TRUCDLL "TRUC.dll";le prototype de la fonction :in Problème d'appel de fonction d'une DLL en C [ par richard22 ] Bonjour Voici mon problème: je réalise une DLL avec cette fonction: DLLIMPORT int Algo(int **result) {    etc...    } et dans un fichier .h : #ifn Fonction dans DLL [ par guitoulefoux ] 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 Faire une callback vers un exe dans un callback hook d'une dll [ par Suisse00 ] Salut :) J'ai créer un hook sur le clavier dans une DLL, dans le callback du hook j'aimerais faire un callback vers une fonctoin du fichier exe. J'ar


Nos sponsors


Sondage...

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 : 0,203 sec (4)

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