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

Windows Forms Discussion :

Un appel à la fonction a déséquilibré la pile :/


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 240
    Par défaut Un appel à la fonction a déséquilibré la pile :/
    Bonjour,

    Je veux pouvoir ouvrir mon lecteur de CD, n'ayant pas trouvé de fonction sous VB2005, j'utilise une API..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        Public Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" _
        (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, _
        ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
     
    Public Function OpenCd(ByVal lecteur As String)
            Return mciSendString(String.Format("set CDAudio!{0} door open", lecteur), Nothing, 127, 0)
     
        End Function
    Mon lecteur s'ouvre bien mais quelques seconde aprés j'ai ce message d'erreur là ! Comment est-ce que je pourrais résoudre mon soucis ?

    Un appel à la fonction PInvoke 'WindowsApplication5!WindowsApplication5.Fonction::mciSendString' a déséquilibré la pile. Cela peut se produire, car la signature PInvoke managée ne correspond pas à la signature cible non managée. Vérifiez que la convention d'appel et les paramètres de la signature PInvoke correspondent à la signature non managée cible.

    D'avance merci
    @+
    Marc

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 240
    Par défaut
    En Vb.net les Long font 64 bits par 32 d'où mon erreur...

    En déclarant l'API de la sorte ça fonctionne nickel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       Public Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As UInt32, ByVal hwndCallback As IntPtr) As UInt32
    A ceux que ça pourra aider



  3. #3
    Membre confirmé Avatar de salrouge
    Inscrit en
    Mars 2006
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 110
    Par défaut
    ouai c'etai la meme erreur dans mon code !
    merci

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

Discussions similaires

  1. question sur la pile d'appel de fonctions
    Par deubelte dans le forum Visual C++
    Réponses: 1
    Dernier message: 03/03/2010, 15h46
  2. Réponses: 4
    Dernier message: 19/04/2004, 13h41
  3. [JSP] Appeler une fonction
    Par Patrick95 dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 23/12/2003, 13h44
  4. Appel à des fonctions incluses dans des DLL
    Par Greybird dans le forum Langage
    Réponses: 3
    Dernier message: 26/05/2003, 13h33
  5. Appeler une fonction avec/sans parenthèses
    Par haypo dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 29/12/2002, 18h48

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