IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++/CLI Discussion :

pb Controle ActiveX


Sujet :

C++/CLI

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 36
    Par défaut pb Controle ActiveX
    Bonjour,

    Je travaille sur un plugin en c++/cli pour un programme 4D.
    Mon Plugin consiste à utiliser les librairies d'un programme(Kofax) qui scanne une image, et décode tout les codes barres qu'ils trouvent sur l'image.

    Les librairies Kofax ont besoin d'un controle ActiveX, j'utilise donc une méthode ActivateActiveX :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    void BarCode::ActivateActiveX(System::Windows::Forms::Control^ obj)
    {
    ((ISupportInitialize^)(obj))->BeginInit();
    		if (_Control == nullptr)
    		{
    			_Control = gcnew UserControl();
    		}
    			_Control->Controls->Add(obj);
    	((ISupportInitialize^)(obj))->EndInit();
    }
    Quand j'éxécute mon programme avec 4D, lorsque je passe sur la dernière ligne de cette fonction, VS me trouve plein d'exception non bloquante :
    Exception de première chance à 0x7c80c017 dans 4D.exe : 0xC0000005: Violation d'accès lors de la lecture de l'emplacement 0x06621000.
    Exception de première chance à 0x7c812aeb dans 4D.exe : Exception Microsoft C++ : xap_bad_schema à l'emplacement mémoire 0x06042cf4..
    Exception de première chance à 0x7c812aeb dans 4D.exe : Exception Microsoft C++ : xap_bad_schema à l'emplacement mémoire 0x06042d18..
    Exception de première chance à 0x7c812aeb dans 4D.exe : Exception Microsoft C++ : xap_no_match à l'emplacement mémoire 0x06042d94..
    Exception de première chance à 0x7c812aeb dans 4D.exe : Exception Microsoft C++ : xap_no_match à l'emplacement mémoire 0x06042d44..
    Exception de première chance à 0x7c812aeb dans 4D.exe : Exception Microsoft C++ : xap_no_match à l'emplacement mémoire 0x06042d44..
    Exception de première chance à 0x7c812aeb dans 4D.exe : Exception Microsoft C++ : xap_no_match à l'emplacement mémoire 0x060430a8..
    Exception de première chance à 0x7c812aeb dans 4D.exe : Exception Microsoft C++ : COleDispatchException à l'emplacement mémoire 0x06044348..
    Exception de première chance à 0x7c812aeb dans 4D.exe : Exception Microsoft C++ : COleDispatchException à l'emplacement mémoire 0x06044338..
    Exception de première chance à 0x7c812aeb dans 4D.exe : Exception Microsoft C++ : COleDispatchException à l'emplacement mémoire 0x06044338..
    Exception de première chance à 0x7c812aeb dans 4D.exe : Exception Microsoft C++ : COleDispatchException à l'emplacement mémoire 0x06044338..
    Exception de première chance à 0x7c812aeb dans 4D.exe : Exception Microsoft C++ : COleDispatchException à l'emplacement mémoire 0x06044338..
    Exception de première chance à 0x7c812aeb dans 4D.exe : Exception Microsoft C++ : COleDispatchException à l'emplacement mémoire 0x06044338..
    Exception de première chance à 0x7c812aeb dans 4D.exe : Exception Microsoft C++ : COleDispatchException à l'emplacement mémoire 0x06044338..


    Le problème, c'est que mon plugin fonctionne correctement mais lorsqu'il rend la main à mon application 4D, celle ci ne répond plus (et ceci est dû aux exceptions levés plus haut).
    Je ne comprend pas d'oui provienne ces exceptions, si quelqu'un peut éclairer ma lanterne c'est avec grande joie que j'accepterai son aide.

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Exécute le programme dans un debugger, tu devrais voir la pile d'appels quand une exception est levée.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 36
    Par défaut
    Je l'ai déja fait, l'exception est levée lorsque la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ((ISupportInitialize^)(obj))->EndInit()
    est éxécuté mais je ne comprend pas pourquoi.

    De plus, c'est une exception non bloquante dans mon programme c++/cli : celui ci s'éxécute jusqu'au bout sans autre problème. Les problèmes apparaissent lorsque le programme fini de s'éxecuter et rend la main à l'appli qui l'appel qui ne veut plus répondre (VS ne répond plus non plus tant que je n'ai pas killé l'appli 4D).

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    C'est la fenêtre Stack Trace qu'il faut regarder. Si l'exception n'interrompt pas ton code, c'est qu'elle est lancée et rattrapée dans le code sous-jacent.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 36
    Par défaut
    C'est bien la fenêtre pile des appels?

    Parce que là, il ne me dit rien de plus.

  6. #6
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Il n'affiche rien de plus profond que ton code ? Merde...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. [ActiveX] Peut-on utiliser un Controle ActiveX avec Java
    Par waldo2188 dans le forum Multimédia
    Réponses: 2
    Dernier message: 22/02/2005, 11h39
  2. Réponses: 7
    Dernier message: 05/08/2004, 14h55
  3. Réponses: 3
    Dernier message: 08/07/2004, 11h06
  4. Réponses: 3
    Dernier message: 11/05/2004, 18h39
  5. Controle ActiveX MessageMap
    Par philippe V dans le forum MFC
    Réponses: 4
    Dernier message: 12/02/2004, 16h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo