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 :

Pile PInvoke et dll


Sujet :

C++/CLI

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    49
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 49
    Par d�faut Pile PInvoke et dll
    Bonjuour,

    J'ai une dll (code non manag�e) que j'ai cr�e dans laquelle j'ai une fonction qui est d�clar�e de la sorte:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    extern "C"
    {
         __declspec(dllexport) int SetValue ( int iValue ); 
    }
    Puis, dans mon application Winform en c++, j'ai un fichier dans lequel je l'importe de la mani�re suivante:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    [DllImport("test.dll")] 
    int SetValue ( int iValue );
    Malheureusement, lors de l'ex�cution l'appel de la fonction SetValue depuis l'application qui charge la dll provoque une erreur sur PInvoke disant que ma fonction a d�d�quilibr� ma pile et fournissant l'explication suivante:
    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.

    Je dois avouer que malgr� mes recherches, je ne comprends pas ce qui se passe ni quoi faire pour corriger. Quelqu'un pourrait-il m'aider?

    Merci!

  2. #2
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 503
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 503
    Par d�faut
    Moi, je me ne compliquerai pas la vie.
    Vous �tes en C++/CLI est vous avez le fichier .h public de la dll et le .lib associ� ?
    Donc, appelez cette fonction comme une fonction de Dll en C++ standard, un simple include du .h et l'ajout de la lib aux param�tres du linker fera l'affaire.

Discussions similaires

  1. Pinvoke dll WIndows Service
    Par pradier4 dans le forum Services Windows
    R�ponses: 2
    Dernier message: 07/04/2013, 21h13
  2. Can't Find PInvoke DLL "Dbnetlib.Dll"
    Par ghir_ana dans le forum VB.NET
    R�ponses: 5
    Dernier message: 17/10/2011, 18h36
  3. R�ponses: 10
    Dernier message: 14/06/2011, 15h01
  4. "DLL PInvoke 'sqlceme35.dll' introuvable."
    Par 4systemation dans le forum Windows Mobile
    R�ponses: 2
    Dernier message: 06/04/2011, 23h54
  5. [WIN32][D7][DLL] Erreur: d�bordement de pile !
    Par hepha1970 dans le forum D�buter
    R�ponses: 5
    Dernier message: 17/12/2007, 01h41

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