Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Appel fonction de DLL [ Archives / Au secours ] (zibo3)

mardi 8 mars 2005 à 17:24:55 | Appel fonction de DLL

zibo3

Bonjour,

Dans mon programme, je load une dll et j'utilise une fonction comme point d'entrée pour l'attaquer mais j'ai un petit probleme. Ca fonctionne très bien en temps normal mais quand la fonction dans la DLL a un plantage, je plante aussi et j'aimerai savoir s'il existe un moyen de securiser mon appel à cette DLL... Je souhaiterai ne pas etre dependant de ses plantages et pouvoir quitter proprement mon application si cette dernière plante.

Merci de votre aide precieuse



mardi 8 mars 2005 à 17:51:18 | Re : Appel fonction de DLL

ymca2003

Encapsule l'appel à la dll dans un bloc __try / __finally ou try / catch :
__try
{
// appel dll
}
__finally
{
// assuré d'être exécuté.
}

try
{
// appel dll
}
catch(...)
{
// exécuté en cas de problème.
}

Cependant, continuer l'exécution d'un prog quand l'appel à un fct d'une dll échoue est risqué. (surtout si tu sait pas pourquoui elle a plantée)

mardi 8 mars 2005 à 17:57:07 | Re : Appel fonction de DLL

zibo3

Je croyais que pour faire un try catch ou un __try __finally, il fallait absolument que les fonctions, (internes de la DLL) fasse un throw, ce qui n'est surement pas le cas dans la mienne...

Mais je vais tout de même faire un essai et je te dirai si ca fonctionne.

Merci de ton aide



mardi 8 mars 2005 à 17:59:11 | Re : Appel fonction de DLL

ymca2003

Ces blocs interceptent toutes les exceptions sous windows dont les throw font partie. mais tu récupère également tout le reste (accès mémoire, division par zéro...).

mardi 8 mars 2005 à 18:09:44 | Re : Appel fonction de DLL

NitRic

Lorsque tu `load` une dll ou autre dans un process, ce dernier fait partie du process appelant donc, si la dll ou autre plante, ca attaque le process donc => `plantage`. C'est tout à fait normal. Un __try/__finally ou __try/__except est une bonne idée par contre.


~(.:: NitRic ::.)~

mardi 8 mars 2005 à 20:24:43 | Re : Appel fonction de DLL

zibo3

J'ai bien essayé d'utiliser un bloc __try/__except mais rien ne c'est produit au moment où la DLL m'a fait un jolie plantage... Il y a t il une facon specifique ou une subtilité dans l'utilisation de ce bloc que je n'aurai pas compris...

mon code est le suivant:

__try
{
    appel fonction DLL
}
__except( Appel fonction de gestion d'erreur)
{
}



mardi 8 mars 2005 à 23:02:52 | Re : Appel fonction de DLL

BruNews

Administrateur CodeS-SourceS
Richter fait une étude complète de SEH, chap 23 à 25 inclus:
[ Lien ]
[ Lien ]

Une fois cela étudié, débarasse toi malgré tout de cette DLL, on n'utilise pas dans un prog un composant ayant une facheuse tendance à planter.

ciao...
BruNews, MVP VC++



Cette discussion est classé dans : fonction, appel, dll, plante


Répondre à ce message

Sujets en rapport avec ce message

implementation d'une fonction callback pour l'appel à une DLL [ par 3asfoura ] Hi all!J'utilise visual c++ 6.0.J'ai une DLL client dont je connais seulement les noms de fonctions visualisés sous "Dependency walker". Je veux imple appel d'une fonction sous dev c++ (fftw) [ par gbreux ] Bonjour,je réalise une dll sous dev c++. J'arrive à créer une dll seulement je fais appel à des fonctions contenue dans des dlls autres qui se situe d Ecrire une Dll en C [ par sleep ] Bonjour, j'ai écrit un programme en C sous VC++ et je voudrais pouvoir exporter certaines de ses fonction dans une Dll, comment dois-je proceder ?Sur Un projet VC++ en DLL, exploitation [ par Sharleen ] Bonjour à tous !Un petit problème tout bête...J'ai un projet VC++, qui me pond un .exe...Je souhaite pouvoir exploiter ce que j'ai fait a partir d'un probleme strcat_s en release [ par LaTatadu91 ] Bonjour,Je me retrouve confronté à un probleme avec la fonction strcat_svoila ce qu'il se passe j'ai dans mon programme plusieurs appels a cette fonct CreateRemoteThread [ par draluorg ] Salut a tous,J'essai d'appeler une fonction dans un autre process en utilisant CreateRemoThread mais j'ai quelques problemes.En fait, j'ai aucun probl importer une fonction depuis un dll externe [ par Rabbi Jakob ] Bonjour,Je programme en c++ sous visual studio 2005J'ai un petit problème avec ma dll Je dispose d'une dll avec son fichier .lib. Je les ai mis tous l hooking [ par neurosupherot ] Bonjour, j'aimerais savoir la chose suivante: j'ai une form F1 et une DLL D2. dans la dll, il y a un système de hooking. Dans la form, il y a une fonc comment utiliser les fonction d'une dll GCC [ par sebastienmz ] Bonjour j'aimerais savoire comment je peut utiliser des fonctions qui sont dans des dll sans avoir les .lib ou .a comment faire? Dll [ par patdimby ] Je voudrais savoir comment écrire une fonction (fonction qui retourne une chaîne)dans une dll et d'appeler cette fonction dans un autre IDE comme VB,d


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,359 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.