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 :

Comment Integr� une lib avec VS2005?


Sujet :

MFC

  1. #1
    Membre chevronn�
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    324
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 324
    Par d�faut Comment Integr� une lib avec VS2005?
    Bonjour,
    Je vien de faire une bibliotheque de classe.
    JE l'ai compil� pour generer un .lib
    Mais je n'arrive pas a l'ajouter a ma nouvelle application :S
    J'ai pourtant rajouter le .h dans mon projet et au niveau du link il me demande ou est la fonction que j'ai declarer dans mon .h
    elle est dans ma LIB pardis !!!!
    mais il la trouve pas.
    j'utilise VS 2005 : pouvez vous me dire comment faire ?
    Merci d'avance

  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
    Dans les options de ton projet->Linker->Input:Additional dependencies

  3. #3
    Membre extr�mement actif

    Homme Profil pro
    Ing�nieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 44
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par d�faut
    Clic droit sur ton projet. Puis properties. Dans l'arbre � gauche tu as linker/g�n�ral. Puis tu vois appara�tre � droite dans un tableau "Additionnal library directories"

    N'ayant pas test� parce que j'ai rarement utilis� cet �diteur. cela peut �tre une piste...

  4. #4
    Membre chevronn�
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    324
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 324
    Par d�faut
    Je vous remercie mais c'est ce que j'avai deja fait :/
    Et il ne la trouve pas ...
    du coup je me demande si l'en-t�te correspondant au lib doit etre specifique?
    Est-ce que le header est le m�me que celui que j'ai compil� pour faire ma lib ?
    dois-je rajout� quelque chose de special dans mon header ou dans ma lib pour que ce soit accessible ?

  5. #5
    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,
    le message d'erreur est a la compilation ou au � l'edition des liens (link) ?

  6. #6
    Membre chevronn�
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    324
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 324
    Par d�faut
    Edition des lien seuleument (link)
    toutes les fonction declarer dans mon point H sont "unresolved token" en gros il marque �a quand c'est declarer mais pas definit ^^

  7. #7
    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
    tu as simplement omis de rajouter le .lib a ton projet en rajoutant
    #pragma comment(lib, "malib.lib")
    dans ton code .

  8. #8
    Membre chevronn�
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    324
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 324
    Par d�faut
    je vien de tester et �a ne change rien : j'ai toujours la m�me erreur lors du link :'(
    pourtant lorsque je genere un DLL avec le m�me code cela tourne comme sur des roulette mais en lib : c pas aussi simple on dirait ...
    pouvez vous me dire si le .h doit �tre diff�rent que celui compil� dans la lib?

  9. #9
    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
    les fonctions de ta lib sont en c ou en C++ ?:
    tu n'as pasoubli� les d�corations extern "C" ?


  10. #10
    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
    Le .h intervient � la compilation, pas � l'�dition de liens. Soit tu n'as pas ajout� le bon .lib, soit ton .lib ne contient pas l'impl�mentation de tes types / fonctions. A moins que ce soit un pblm de CRT
    Peux-tu donner un exemple d'erreur ?

  11. #11
    Membre chevronn�
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    324
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 324
    Par d�faut
    ce n'est que du c++.net m'enfin �a reste du c++ : la n'est pas la probleme sa poserai des probleme si c'etait du C
    Je vai vous expliquez concretement ce que j'ai fait :
    je cree un nouveau projet du type : biblioth�que de classe
    Je cr�e 2 classe dans maLib.h
    je les definit dans mon cpp : je compile en generant MaLib.lib.
    Jusque l� tout marche !
    Ensuite je dans mon 2eme projet ou je veux utiliser ma lib
    je copie maLib.h (sans rien modifier) et je rajoute le dossier ou MaLib.lib est install�. ensuite je rajoute #pragma comment(lib,"MaLib.lib") dans mon header de mon main de mon projet.
    et les erreur sont les suivantes :
    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
     
    Linking...
    Generating code
    Finished generating code
    Anachadec.obj : error LNK2020: unresolved token (06000032) CDBLib.CDB::.ctor
    Anachadec.obj : error LNK2020: unresolved token (06000033) CDBLib.CDB::Lire
    Anachadec.obj : error LNK2020: unresolved token (06000034) CDBLib.CDB::Charge
    Anachadec.obj : error LNK2020: unresolved token (06000035) CDBLib.CDB::Decharge
    Anachadec.obj : error LNK2020: unresolved token (06000036) CDBLib.CDB::Start
    Anachadec.obj : error LNK2020: unresolved token (06000037) CDBLib.CDB::Stop
    Anachadec.obj : error LNK2020: unresolved token (06000038) CDBLib.CDB::~CDB
    Anachadec.obj : error LNK2020: unresolved token (06000039) CDBLib.CDB::CheckSum
    Anachadec.obj : error LNK2020: unresolved token (0600003A) CDBLib.CDB::ConvTo2Bytes
    Anachadec.obj : error LNK2020: unresolved token (0600003B) CDBLib.CDB::ArrayToStr
    Anachadec.obj : error LNK2020: unresolved token (0600003E) CDBLib.CDBException::.ctor
    Anachadec.obj : error LNK2020: unresolved token (0600003F) CDBLib.CDBException::GetUserMsg
    Anachadec.obj : error LNK2020: unresolved token (06000040) CDBLib.CDBException::GetInfo
    C:\PROG\C++\Appli_Finale\Anachadec\Debug\Anachadec.exe : fatal error LNK1120: 13 unresolved externals

  12. #12
    Membre chevronn�
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    324
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 324
    Par d�faut
    UP>
    Ma question est simple comment faire un .h d'une lib ?
    Me dites pas que vous savez pas ?

  13. #13
    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
    j'utilise pleins de libs sur vc2005 avec mes projets et je n'ai pas de problemes.
    Le m�me .h pour ta classe peut �tre utilis� pour ta lib et ton projet.

    Tu es sur du chemin de ta lib dans ton projet ?
    Tu n'as pas chang� les conventions d'appels ? (par d�faut __cdecl )
    On parle bien de biblioth�que (.lib uniquement) pas de DLL ?

  14. #14
    Membre chevronn�
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    324
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 324
    Par d�faut
    oui je parle bien de LIB et non pas de dll;
    quand a __cdecl
    je ne le met aps devant les fonction etant donn� que je fait du .net
    quelle autre difference existe t-il avec des classe normales ?
    voila en gros a quoi ressemble mon .h

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    namespace CDBLib {
     
    	public ref class CDB
    	{
    	public:
                 bool mafonction(int param);
                 etc .....
             }
             public ref class CDBException : public Exception
             {etc .....
              }
    }

  15. #15
    Membre chevronn�
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    324
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 324
    Par d�faut
    et donc je voulais savoir si c'etait suffisant comme .h pour definir les protoype de mes foonction dans ma lib ou si il fallat rajouter une instruction special ?

  16. #16
    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
    C'est pas du C++ standard, mais du C++/CLI, du .Net quoi. Y'a pas de .lib en .Net, mais des assembly. Faut ajouter l'assembly obtenues � la liste des r�f�rences du projet.

  17. #17
    Membre chevronn�
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    324
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 324
    Par d�faut
    merci beaucoup je vai voir �a tout de suite
    EDIT : euh c'est quoi le fichier d'assembly ?
    car en reference je peu importer que des .dll , .tlb , .olb , .ocx , .exe
    et j'ai vu un fichier assembly.obj mais je pense pas que ce soit �a ...
    Alors comment on fait pour gener� le fichier d'assembly ?
    Merci

  18. #18
    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
    c'est le .exe ou le .dll, sauf qu'on appelle �a une assembly .Net, parce que ce sont pas des exe/dll classiques, mais... des assemblies .Net

  19. #19
    Membre chevronn�
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    324
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 324
    Par d�faut
    dit moi si je me trompe mais losrque je fais une reference a une dll genrer je dois obligatoirement avoir la DLL dans mon dossier de lancement de mon projet ? il n'y a donc pas de link ? je veux faire un lib static ^^ pas une dynamique : c'est juste pour faire de la reutilisation de code
    a moins que comme tu dis il y a une option a appliquer pour que la dll soit lier statiquement mais tous mes essai avec la dll sont dynamique (en gros j'ai besoin de la dll a l'execution de mon prog) et c'est aps ce que je veux :/

  20. #20
    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
    Tu d�veloppes en .Net. A la limite, le forum C# serait + adapt�. Y'a pas de lib statique, la dll (assembly) n'est pas li�e statiquement, tout est diff�rent : c'est le monde .Net.
    Ton code va �tre compil� en une assembly qui pourra �tre utilis�e en C++/CLI, C#, VB.Net ,etc...
    Au cas o� tu ne le saurais pas, ton "petit" exe C++/CLI a besoin du framework 2.0 pour fonctionner:
    http://www.microsoft.com/downloads/details.aspx?displaylang=fr&FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5
    Un installeur de 22 Mo � livrer avec ton exe. Donc ta petite dll en plus ou en moins...
    http://arb.developpez.com/vc++/expre...sentation-vcpp

Discussions similaires

  1. [VS2005] comment organiser une solution avec plusieurs classes
    Par mahboub dans le forum Visual Studio
    R�ponses: 1
    Dernier message: 15/04/2008, 10h49
  2. R�ponses: 9
    Dernier message: 17/09/2007, 10h03
  3. Comment integrer un logiciel avec une application
    Par Hamza dans le forum Delphi
    R�ponses: 2
    Dernier message: 29/07/2007, 13h21
  4. Comment faire pour integrer une lib externe
    Par X-plode dans le forum Eclipse Java
    R�ponses: 1
    Dernier message: 25/04/2007, 15h54
  5. [VS2005] Comment ajouter une solution avec VS2005
    Par Khrysby dans le forum Visual Studio
    R�ponses: 1
    Dernier message: 24/10/2006, 03h34

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