begin process at 2012 02 12 17:36:23
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Appel fonction de DLL


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

Appel fonction de DLL

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ée 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 DLL C++ depuis NSDK [ par wislam2007 ] Salut les amis, franchement dans la merde! avec une dll c++. Je doit appelé une methode de cette DLL depuis une environnement NSDK, Sachant que cette Pb Hook.... [ par Mr_Coinche ] Bonjour,J'ai crée une dll très simple appelée "DllMaths.dll", qui contient deux fonctions, "carre" et "cube", je vous laisse deviner ce que ces foncti Probleme : creation d' une interface graphique par dll ... :-s [ par GeroXXXX ] Bonjour a tous :) Alors voici mon problème... Je suis actuellement sur la création d' un plugin en c++ ( dll ) pour Xchat : http://www.ircfr.com/code importer une fonction d'un exe [ par Kian_ix ] salut je cherche un moyen d'importer une fonction a partir d'un fichier .exe comme on pourrait le faire a partir d'un fichier .dll, par exemple: PROC Dialog MFC d'une DLL dans une application non MFC [ par auwel ] Voilà j'ai une dll (MFC partagée) qui contient une fonction permettant l'affichage d'une boîte de dialogue. Cette fonction fonctionne correctement si gestion des timeouts sur port com C/C++ [ par HeXa2 ] Bonjour!Je suis actuelement en train de generer une dll qui comunique sur le port sérieIl me faut gerer les timeouts.je veux qu'au bout de 1500ms d'in Problème de retour de dll sous l’API32 [ par ArthurAuguste ] J’ai un .exe (une fenêtre) qui tourne donc avec quelque part une boucle : while( GetMessage( &message, NULL, 0, 0)) { TranslateMessage( &message ); appel a une fonction [ par badsha ] Bonjourà tous, je programme en ZEND et je voudrai savoir comment je peux faire appel a une fonction,par exemple ma fonction ZEND_FUNCTION(hello) { RE


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

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

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