Et le souci, est que l'application ne rentre mm pas dans ma fonction mais va directement dans le catch, et l'exception message est : "?".
c'est du code spécifique à une API (vous le montrer ne servirait donc pas à grand chose)
je peux juste vous dire que la fonction est déclarée de la sorte :
namespace MyDllAppelée
{
/// <summary>
/// Description résumée de CValidationPSE.
/// </summary>
public
class MaSousClasse
{
public MaSousClasse()
{
//
// TODO : ajoutez ici la logique du constructeur
//
}
/// <summary>
/// Check the Valid Point has a PSAWeldPOintSource different from null
///
/// </summary>
/// <returns></returns>
public
static
bool MaFonction(ref arg1,
ref arg2,
ref arg3);
{
//Variables
...
}
Quelqu'un aurait il une idée ???
****************************************************
Il n'y a pas de pb sans solutions : il faut juste trouver le temps pour les chercher
A voir également:
Impossible d'appeler une fonction dans une autre dll...
cs_69chris
Messages postés318Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention30 décembre 20051 20 déc. 2005 à 16:45
Salut,
Pas plus d'info que ça au niveau de l'exception?
Je commence pars le plus évident.
Tu as bien ajouté la référence à la dll et elle est bien présente dans le répertoire de ton appli?
PeTeRsLaStAr
Messages postés158Date d'inscriptionsamedi 22 juin 2002StatutMembreDernière intervention27 juin 20151 20 déc. 2005 à 16:54
Alors,
pas plus d'info au niveau de l'exception non,
e.Message est "?"
Sachant qu'il n'entre pas du tout dns la fonction quoi...
Alros que si je mets la fonction qui appelle la fonction dans la dll en commentaire, ça marche sans souci...
Sinon : oui, la référence à la dll est bien dans les références, et non la dll n'est pas présente dans le répertoire de mon appli, vu que la copie locale est à false.
J'ai tenté le mm bout de code en mettant copie locale à true et en insérant la dll dans le répertoire, mais avec le mm résultat...
D'autres questions ? D'autres idées surtout ? ^^
****************************************************
Il n'y a pas de pb sans solutions : il faut juste trouver le temps pour les chercher
cs_69chris
Messages postés318Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention30 décembre 20051 20 déc. 2005 à 17:10
Oui, une autre question. C'est quoi le Type de l'exception. Car le message c'est bien beau mais le type, la classe qui la génère, la méthode et ainsi de suite ça aide à localiser l'origine.
Donc si tu pouvais donner toutes les infos...
Ton truc, ça resemble à "je trouve pas la Dll". Donc effectivement, il passe pas sur l'appel de la méthode.
PeTeRsLaStAr
Messages postés158Date d'inscriptionsamedi 22 juin 2002StatutMembreDernière intervention27 juin 20151 20 déc. 2005 à 17:23
- e {"?" } System.Exception
+ [System.TypeLoadException] {"MyDllAppelée.MaSousClasse.MaFonction"} System.TypeLoadException
System.Object {System.TypeLoadException} System.Object
_className null string
_COMPlusExceptionCode -532459699 int
_exceptionMethod <valeur non définie> System.Reflection.MethodBase
_exceptionMethodString null string
_helpURL null string
_HResult -2146233054 int
_innerException { } System.Exception
_message "?" string
_remoteStackIndex 0 int
_remoteStackTraceString null string
_source null string
+ _stackTrace {System.Array} System.Object
_stackTraceString null string
_xcode -532459699 int
_xptrs 0 int
HelpLink null string
HResult -2146233054 int
InnerException { } System.Exception
Message "?" string
Peut être que la dll en soit n'est pas correcte ?
Car si elle n'était pas au bon endroit, est ce que j'aurais accès à toutes ses fonctions dans le code, en tapant le point juste derrière l'appel en question ? (ça a un terme, je m'en souviens plus...) est ce que ça bloquerait pas à la compile plutot ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_69chris
Messages postés318Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention30 décembre 20051 20 déc. 2005 à 17:37
Donc, le type d'erreur confirme mon idée première.
TypeLoadException est levé lors d'une erreur au chargement d'un type donc d'un assembly s'il n'était pas chargé.
La propriété StackTrace donne le détail de la pile d'appel. Donc tu peux y trouver qui est à l'origine de l'exception. Dans ton cas, je pense toujours qu'il manque une DLL ou une autre dépendance dans le répertoire de ton appli.
Si tu es "propriétaire" du code de la méthode que tu appel (MaMethode), ajoute un try catch et compile la mode debug. Normalement, ça doit rien changer à ton problème.
Ensuite, quelle est la spécifitée de cette méthode en terme de ressource (DLL, objet COM, etc...).
Un projet de test de cette DLL fonctionne?
PeTeRsLaStAr
Messages postés158Date d'inscriptionsamedi 22 juin 2002StatutMembreDernière intervention27 juin 20151 20 déc. 2005 à 20:00
C'est une DLL que j'ai faites moi mm, qui était à la base utilisée pour gérer les erreurs sous forme de log.
Je n'ai pas encore testé cette fonctionnalité....
Cependant, elle contenait auparavant toute une série de constantes (un peu comme une bibliothèques de constantes finalement), et ces constantes, lorsqu'elles étaient appelées, étaient parfaitement reconnues.
Est ce le fait qu'il s'agisse d'une fonction ?
Est il possible d'avancer en mode pas à pas dans la dll appelée en question, voir ce qui se passe ?
Genre en liant les processus ou autre ?
Merci de me consacrer un peu de temps en tout cas, c'est très sympa de ta part...
****************************************************
Il n'y a pas de pb sans solutions : il faut juste trouver le temps pour les chercher