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 :

[C# 2.0][P/Invoke] Erreur à l'execution


Sujet :

C++/CLI

  1. #1
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 92
    Points : 55
    Points
    55
    Par défaut [C# 2.0][P/Invoke] Erreur à l'execution
    Bonsoir !

    J'ai créé un exe C#2.0 (P_Invoke.exe)qui appelle une dll native écrite en C (NativeDll.dll).
    Le méthode exportée est de prototype :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    short Add(short a, short b)
    Tout ce petit monde a été compilé avec VS8.

    Sur le PC qui m'a servi a compiler, l'exécution se passe sans problème.

    Le soucis arrive lorsque cet exe est lancé sur une autre machine que la mienne (WinXP, .NET2.0 installés)
    Lors de l'appel au code natif, l'exception suivante est levée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    ************** Exception Text **************
    System.DllNotFoundException: Unable to load DLL 'NativeDll.dll': Cette application n'a pas pu démarrer car la configuration de l'application est incorrecte. Réinstaller l'application pourrait résoudre ce problème. (Exception from HRESULT: 0x800736B1)
       at P_Invoke.Wrapper.Add(Int16 a, Int16 b)
       at P_Invoke.MainForm.Compute(Decimal d1, Decimal d2)
       at P_Invoke.MainForm.numBox1_ValueChanged(Object sender, EventArgs e)
       at System.Windows.Forms.NumericUpDown.OnValueChanged(EventArgs e)
       at System.Windows.Forms.NumericUpDown.set_Value(Decimal value)
       at System.Windows.Forms.NumericUpDown.UpButton()
       at System.Windows.Forms.UpDownBase.OnUpDown(Object source, UpDownEventArgs e)
       at System.Windows.Forms.UpDownBase.UpDownButtons.OnUpDown(UpDownEventArgs upevent)
       at System.Windows.Forms.UpDownBase.UpDownButtons.BeginButtonPress(MouseEventArgs e)
       at System.Windows.Forms.UpDownBase.UpDownButtons.OnMouseDown(MouseEventArgs e)
       at System.Windows.Forms.Control.WmMouseDown(Message& m, MouseButtons button, Int32 clicks)
       at System.Windows.Forms.Control.WndProc(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
    Voyez-vous d'où cela peux venir ?
    Merci pour votre aide


    [EDIT]
    Précision : mon appli n'utilise pas de fichier de configuration (app.config)

  2. #2
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    j'ai déjà eu ce problème plein de fois
    C'est lié aux runtimes Visual C++ 8.0 qui ne sont pas installés sur la machine cible : la version des runtimes entre VS 2005 et VS 2005 SP1 diffère ...
    http://forums.microsoft.com/MSDN/Sho...66919&SiteID=1
    tu peut aussi rechercher le fichier vcredist dans le répertoire d'installation de Visual Studio ou dans les téléchargements Microsoft

    Voilà, en espérant ne pas me tromper ...

  3. #3
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 92
    Points : 55
    Points
    55
    Par défaut
    Salut !

    Si j'ai bien suivi : le problème peut venir du fait que les composants d'exécution installés sur la plateforme de déploiement sont plus anciens que ceux installés par mon Visual Studio ?

    Je n'ai pas précisé dans mon premier post : la version de VS utilisée pour compiler DLL et EXE est la 2005 sans SP1.

    Je vais tenter d'installer vcredist sur la machine de déploiement.

    [EDIT]
    Le lien que tu m'as donné porte sur un problème entre C++ managé et C#
    Dans mon cas, c'est C++ natif et C#

  4. #4
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 92
    Points : 55
    Points
    55
    Par défaut
    Finalement, je n'aurai pas eu besoin d'installer les derniers composant d'exécution.

    Afin de faire un test rapide, j'avais déployé les dll compilées en Debug.

    Il m'a suffit de déployer les dll compilées en Release.

  5. #5
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Citation Envoyé par glKabuto
    Il m'a suffit de déployer les dll compilées en Release.
    A oui c'est vrai tu as marqué le point
    Il y a le problème de Release/Debug et celui de C++/CLI de VS 8 SP1 j'ai confondu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. erreur d'execution 3704, ...:objet n'est pas ouvert
    Par cari dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 29/11/2005, 16h44
  2. [ERREUR D'EXECUTION] Segmentation Fault
    Par CestPasMoi dans le forum C++
    Réponses: 3
    Dernier message: 26/11/2005, 18h38
  3. Réponses: 3
    Dernier message: 03/11/2005, 19h41
  4. [LDAP][Interface Winldap.h] Erreur d'execution
    Par -=Spoon=- dans le forum Autres SGBD
    Réponses: 2
    Dernier message: 10/03/2005, 18h10
  5. [javamail] erreur d'execution
    Par bibx dans le forum API standards et tierces
    Réponses: 11
    Dernier message: 05/12/2003, 12h04

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