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

Visual C++ Discussion :

#pragma et compilo VC


Sujet :

Visual C++

  1. #1
    Membre �clair�
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    410
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 410
    Par d�faut #pragma et compilo VC
    Salut tout le monde,
    Bon j'�cris ce message car depuis quelques temps je me prend la tete � essayer de faire un programme, et je bloque � un niveau .
    Posage de d�cors:
    Je fais un Hook pour intercepter un clic sur une fenetre quelconque et tout, je passe par une dll et le tout marche, enfin presque. Le probleme c'est lors de l'interception du clic �a passe un callback cr�� au pr�alable et d�clar� lors de la cr�ation du Hook. Le probl�me est que dans ce callback j'arrive pas � acc�der � des variables externes ou globales. Je suis tomb� sur un exemple de hook o� le gars il modifie une variable globale mais pour cela il fait une espece de d�claration avec des #pragma que je maitrise pas:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    #pragma data_seg(".maSectionHook")
    	DWORD la_variable = 0;
    #pragma data_seg() 
    #pragma comment(linker, "/SECTION:.maSectionHook,RWS")
    Le probl�me est que je d�veloppe mon truc sous code blocks avec mingw et visiblement ces pragma l� il ne semble pas les connaitre .
    Donc je voulais compiler ma dll avec un compilo VC pour tester (puis l'injecter dans mon prog mingw) mais le probleme est qu'apres la compilation il me g�n�re uniquement le .dll et pas le .lib pour l'utiliser avec mingw...
    Alors est ce que quelqu'un peut me confirmer s'il y a bien moyen de faire une dll accompagn� de son .lib, et est ce que c'est compatible avec mingw? (d'apr�s la faq de mingw c'est possible, mais bon je me m�fies)
    Et est ce que quelqu'un peut me dire en clair ce que fait les pragma parce que l� j'y comprend rien
    Merci d'avance

  2. #2
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    c'est effectivement sp�cifique � VC

    mais par contre, avec un tel source, cela va te g�n�rer le .lib
    comment cela se fait-il que tu ne l'ais pas ? il doit etre dans le repertoire release (ou debug)

  3. #3
    Membre �clair�
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    410
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 410
    Par d�faut
    j'ai pourtant cherch� mais j'avais que la dll (visual studio express bidul)

  4. #4
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    tu l'as recompil� ?

  5. #5
    Membre �clair�
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    410
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 410
    Par d�faut
    la honte.. il me manquait un #define DLL_EXPORT __declspec(dllexport)
    mais sinon des r�ponses sur ce que fait ce pragma?

  6. #6
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    il d�finit une section de m�moire partag�e commune � tous les threads qui utilisent la dll.
    C'est � dire qu'ici le hook est un hook global qui s'installe dans tous les threads de l'application et qui aura un espace de m�moire commun � tous ces threads

  7. #7
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    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 397
    Par d�faut
    Un define direct comme �a, ce n'est pas conseill� pour de la d�claration de fonctions dans une DLL.
    Pour plus de souplesse, on utilise g�n�ralement ceci:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    #ifdef BUILDING_NOMDELADLL
    #define NOMDELADLL_API __declspec(dllexport)
    #else
    #define NOMDELADLL_API __declspec(dllimport)
    #endif
    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.

  8. #8
    Membre �clair�
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    410
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 410
    Par d�faut
    ok merci, le topis est r�solu mais il va falloir que j'en cr�� un sur "Autres compilateurs" pour savoir comment faire reconnaitre ma dll de VC � mingw

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

Discussions similaires

  1. A propos de #pragma once...
    Par Selenite dans le forum C++
    R�ponses: 6
    Dernier message: 03/04/2008, 11h38
  2. option compilo #pragma unknow
    Par kacedda dans le forum Visual C++
    R�ponses: 5
    Dernier message: 15/03/2007, 14h15
  3. les "#Pragma" autoris�s par le compilo du ddk ?
    Par - Robby - dans le forum Autres �diteurs
    R�ponses: 2
    Dernier message: 28/02/2006, 12h05
  4. Pragma lib o� le mettre ?
    Par Sephi dans le forum MFC
    R�ponses: 2
    Dernier message: 16/02/2004, 23h50
  5. #error ,#pragma
    Par Zazeglu dans le forum C
    R�ponses: 5
    Dernier message: 01/11/2003, 00h05

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