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++Builder Discussion :

Liaison d'une dll Visual C++ dans un programme c++Builder


Sujet :

C++Builder

  1. #1
    Membre confirm�
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Novembre 2003
    Messages
    90
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 90
    Par d�faut Liaison d'une dll Visual C++ dans un programme c++Builder
    J'ai essayer de lier � mon programme C++Buider5 une dll compiler � l'aide de Visual C++. Et � chaque fois j'obtient des erreurs dans la m�moire. Les fonctions de la dll tentent de modifier des variables de mon programme sans authorisation. (Comme si la dll partageait la m�moire avec mon programme, mais pas l� ou je lui dit)
    Je travaille sous WindowsXP, et la dll � �t� compil� sous windows 2000.
    J'ai d'abbord essayez de lier la dll grace au point lib. Puis j'ai aussi essay� de la lier � l'aide des fonctions de l'API windows (LoadLibrary et GetProcAddress), mais aucun r�sultat.

    Merci d'avance pour votre aide!

  2. #2
    R�dacteur/Mod�rateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par d�faut
    Bonjour

    Perso, dans ce cas, je fais un chargement dynamique de la Dll avec LoadLibray et GetProcAddress et �a a toujours tr�s bien fonctionn�. As-tu utilis� ta dll avec d'autres programmes sans plante ?
    On manque de renseignements.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas �tre meilleur que les autres, il faut �tre meilleur que soi." Albert Jacquard
    "Ceux qui savent o� ils ont pos� leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, �a vous changera les id�es !
    Ma page Prolog
    Mes codes sources comment�s

    Mon avatar : La Madeleine � la veilleuse de Georges de La Tour

  3. #3
    Membre confirm�
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Novembre 2003
    Messages
    90
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 90
    Par d�faut
    Oui la dll fonctionne avec des applications Visual C++ et Visual.net

  4. #4
    R�dacteur/Mod�rateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par d�faut
    As - tu v�rifi� les options d'alignement des donn�es :
    style :
    On n'y pense pas toujours et �a entraine parfois des probl�mes avec des environnements diff�rents.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas �tre meilleur que les autres, il faut �tre meilleur que soi." Albert Jacquard
    "Ceux qui savent o� ils ont pos� leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, �a vous changera les id�es !
    Ma page Prolog
    Mes codes sources comment�s

    Mon avatar : La Madeleine � la veilleuse de Georges de La Tour

  5. #5
    Membre Expert
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activit� : Responsable de compte
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Billets dans le blog
    1
    Par d�faut
    Salut
    regarde cet excellent article
    http://www.bcbdev.com/articles/vcdll2.htm
    il est en Anglais
    cordialement
    vous trouverez mes tutoriels � l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les r�gles du forum

  6. #6
    Membre du Club
    Inscrit en
    Novembre 2003
    Messages
    9
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 9
    Par d�faut
    Bonjour,

    Il peu exister un autre probleme. Je me suis fait avoir plusieurs fois.

    Les fonctions exportees d'une DLL doivent respecter un convention d'appel ou 'Calling Convention'. Il existe plusieurs types de convention d'appel:
    - stdcall (la plus utilis�e), fastcall, fastthis, pascal, cdecl ...
    Suivant le type de convention, les fonctions et leur arguments ne sont pas empil�s (et donc depil�s) de la meme facon.

    Il faut donc bien verifier que le fichier .h contient devant chaque prototype de fonctions la convention d'appel (ex: void __stdcall foo( .... ) )
    Si cela n'est pas le cas, rajouter celui qui ne fait pas planter votre programme.

    L'alignement des donnes est aussi tres important car il permet d'identifier les adresse memoire des elements des structures (alignement pair par defaut).

    Cordialement, Thomas

  7. #7
    Membre confirm�
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Novembre 2003
    Messages
    90
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 90
    Par d�faut
    merci pour vos r�ponses, je vais essayer de faire ce que vous m'avez propos�, et je vous tiens au courant.

  8. #8
    Membre confirm�
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Novembre 2003
    Messages
    90
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 90
    Par d�faut

    Merci � Tous! J'ai r�solu le probl�me grace � vos r�ponse
    C'�tait �ffectivement un probl�me de convention d'appel.
    j'utilisais: au lieu de: dans le fichier d'ent�te.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. utiliser une DLL visual C++ dans projet C#
    Par yozart dans le forum C#
    R�ponses: 4
    Dernier message: 12/11/2009, 02h11
  2. Peut on utiliser une DLL DotNEt (C#) dans un programme en C?
    Par Jayceblaster dans le forum D�buter
    R�ponses: 12
    Dernier message: 12/02/2008, 17h46
  3. R�ponses: 10
    Dernier message: 01/02/2008, 17h14
  4. dll visual basic dans VC++
    Par Nicky dans le forum MFC
    R�ponses: 6
    Dernier message: 21/09/2004, 10h57
  5. Appeler une API sans liaison avec une DLL
    Par mat.M dans le forum x86 32-bits / 64-bits
    R�ponses: 10
    Dernier message: 13/07/2004, 02h22

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