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

MFC Discussion :

[VC++ 6.0] - Linkage lib C++ dans C


Sujet :

MFC

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Avatar de Alice9
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    124
    D�tails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations forums :
    Inscription : Mai 2004
    Messages : 124
    Par d�faut [VC++ 6.0] - Linkage lib C++ dans C
    Bonjour � toutes et � tous,

    j'ai d�velopp�e une petite lib en C++ pour la gestion des process.
    Jusque l� tout va bien, � chaque fois que je l'ai impl�ment�e dans un prog C++ avec MFC je n'ai pas rencontr� de soucis.

    Aujourd'hui je souhaite l'int�gr� dans un prog C.
    Pour que le .h de cette lib soit reconnu et lisible par le compilo j'ai mis le code suivant :
    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
    18
    19
    20
    21
    22
    23
    24
    25
     
     
    #ifdef  __cplusplus   
    extern "C" {
    #endif
     
    #if !defined(_G2MMANAGEPROCESS_C__HEADER_)
    #define _G2MMANAGEPROCESS_C__HEADER_
     
    int findPID(/// PID a trouver
                    short _PID) ;
     
    void FindProcess(/// nom du process
                      char * nameProcess,
                      /// valeur du PID trouvé
                      short * valPID) ;
     
    int ClosedProcess(/// nom du process
                      char * nameProcess) ;
     
    #endif // !defined(MANAGE_PROCESS_H_)
     
    #ifdef  __cplusplus   
    }
    #endif
    Par rapport � ma lib de d�part, j'ai rajout� le principe du Extern "C" pour �tre reconnu dans le prog C.
    De cette mani�re je n'ai pas l'erreur de non reconnaissance de symbole (non de la fonction utilis�e).

    Par contre j'ai un autre probl�me de linkage, :
    nafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) already defined in LIBCMT.lib(new.obj)
    ..\..\..\binary\A02120-A02123_NZ_REMORA\g2mConsigne\g2mConsigne.exe : fatal error LNK1169: one or more multiply defined symbols found
    A noter que ma lib et mon appli sont toutes les deux en multithread et que je d�veloppe en VC++ 6.00

    Auriez vous une id�e du probl�me ?


    par avance

    Alice

  2. #2
    Expert confirm�

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par d�faut
    mono/multithread, et dll/static : il faut les m�mes r�glages pour les 2.

  3. #3
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    salut,
    rajoute dans le link category input /ignore libraries:
    LIBCMT.lib

  4. #4
    Membre confirm�
    Avatar de Alice9
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    124
    D�tails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations forums :
    Inscription : Mai 2004
    Messages : 124
    Par d�faut
    > Aurelien.Regat-Barrel

    Pour la lib j'ai Multithreaded DLL et pour l'appli Multithreaded.
    Crois tu que cela puisse jouer ?

    > Farscape

    J'avais d�j� une librairie d'ignor�e, du coup j'ai mis :
    libc.lib LIBCMT.lib
    Mais �a me fait toujours la m�me erreur ......


  5. #5
    Expert confirm�

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par d�faut
    Citation Envoy� par Alice9
    > Aurelien.Regat-Barrel

    Pour la lib j'ai Multithreaded DLL et pour l'appli Multithreaded.
    Crois tu que cela puisse jouer ?
    oui, il faut mettre les 2 pareil.

  6. #6
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    je pense que le m�lange mono/multi c'est pas terrible.
    plus les effets de bord possibles avec la CRT...
    vaut mettre tout en multi thread.

  7. #7
    Membre confirm�
    Avatar de Alice9
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    124
    D�tails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations forums :
    Inscription : Mai 2004
    Messages : 124
    Par d�faut
    Quand j'essaie de passer ma lib en multithreaded seule, l'erreur suivante apparait :
    C:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDE\afxver_.h(130) : fatal error C1189: #error : Please use the /MD switch for _AFXDLL builds
    j'utilise les librairies afx.h et afxwin.h et je pense que c'est � cause de �a....

    Et je ne crois pas que cela soit logique de compiler mon appli en multithreaded Dll ...

    Me trompes je ?

  8. #8
    Membre confirm�
    Avatar de Alice9
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    124
    D�tails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations forums :
    Inscription : Mai 2004
    Messages : 124
    Par d�faut
    Ben justement mon appli c'est du Multithread....

    et ma lib du multithread DLL ...

    j'ai du mal � comprendre votre histoire de mono du coup ....

  9. #9
    Membre confirm�
    Avatar de Alice9
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    124
    D�tails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations forums :
    Inscription : Mai 2004
    Messages : 124
    Par d�faut
    Pour �tre plus pr�cise :

    J'int�gre ma lib dans mon appli. J'ajoute l'include du .h de ma lib dans un des fichiers de mon appli.

    L� quand je compile puis que je link pas de probl�me.

    Mais quand je fais appelle dans mon programme � une des fonctions de ma lib, j'ai l'apparition de l'erreur cit�e plus haut !

    �a vous �claire un peu sur mon probl�me ?



  10. #10
    Membre confirm�
    Avatar de Alice9
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    124
    D�tails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations forums :
    Inscription : Mai 2004
    Messages : 124
    Par d�faut
    Finalement j'ai abandonner l'id�e de r�utilis� la lib C++ dans mon appli C.

    J'ai r�cup�r� le contenu de ma fonction de r�cup�ration du PID d'un process d'apr�s son nom et je l'ai impl�ment� dans mon prog en C.

    �a fonctionne bien !

    encore pour tout et pour le d�rangement....

    (je peux pas me permettre de chercher plus longtemps ce qui ne va pas avec ma librairie)

    Alice

  11. #11
    Expert confirm�

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par d�faut
    Citation Envoy� par Alice9
    Quand j'essaie de passer ma lib en multithreaded seule, l'erreur suivante apparait :
    C:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDE\afxver_.h(130) : fatal error C1189: #error : Please use the /MD switch for _AFXDLL builds
    j'utilise les librairies afx.h et afxwin.h et je pense que c'est � cause de �a....

    Et je ne crois pas que cela soit logique de compiler mon appli en multithreaded Dll ...

    Me trompes je ?
    oui
    la dll en question ce n'est pas la tienne, c'est une dll de VC++. L'erreur t'informe que le projet que tu compiles dois �tre compil� en multithread dll.

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

Discussions similaires

  1. Import de lib Struts dans un bean
    Par 19cmos83 dans le forum Struts 1
    R�ponses: 1
    Dernier message: 22/05/2008, 11h48
  2. Installation lib source dans BCB 2007
    Par Takusen dans le forum C++Builder
    R�ponses: 5
    Dernier message: 11/06/2007, 10h39
  3. [Link] lib static dans une lib dynamique
    Par TobyKaos dans le forum C++
    R�ponses: 3
    Dernier message: 15/05/2007, 10h25
  4. Linkage, lib, dll toussa
    Par Stevie Wonder dans le forum Visual C++
    R�ponses: 1
    Dernier message: 03/11/2006, 22h48
  5. [GD] Ajouter la lib GD dans PHP
    Par pyramix dans le forum Biblioth�ques et frameworks
    R�ponses: 3
    Dernier message: 20/09/2006, 13h41

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