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

Probleme Biblioteque + Visual C++ 2005


Sujet :

C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 23
    Par défaut Probleme Biblioteque + Visual C++ 2005
    Bonjour a tous et merci d'avance

    Je voudrais utiliser la biblioteque constructeur pour une camera Firewie Foculus FO124T. Je dispose du SDK du constructeur que l'on peut trouver a l'adresse suivante :
    SDK
    Ainsi que de la doc Constructeur :
    Doc Constructeur

    Cependant, meme si j'arrive malgre quelques difficultes et bidouillage a compiler le programme d'exemple sous visual C++ 2005, je ne parvient pas a creer mon propre programme qui pourrait simplement initialiser puis liberer la camera.

    Un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    int _tmain(int argc, _TCHAR* argv[])
    {
    	FOSDKInit();
    	FOSDKUninit();
    	return 0;
    }
    J'obtient au mieux les deux erreurs suivantes en utilisant le fichier ApiImport :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    error LNK2001: símbolo externo "void (__stdcall* FOSDKUninit)(void)" (?FOSDKUninit@@3P6GXXZA) sin resolver
    error LNK2001: símbolo externo "int (__stdcall* FOSDKInit)(void)" (?FOSDKInit@@3P6GHXZA) sin resolver

    (oui, je travaille sur une version Espagnol de Visual C++, ce qui ne m'aide pas beaucoup, je l'avoue)

    Lorsque j'essaye d'utiliser la librairie de manier plus traditionnels (Click droit proprieter sur le projet, les liens bien configurer comme explique dans la doc)
    j'obtient 234 erreurs.

    Si quelqu'un pouvait me dire oú j'ai manqué quelque chose je lui en serait extrement reconnaissant.

    Merci d'avance

  2. #2
    Membre émérite
    Avatar de Spout
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2007
    Messages : 904
    Par défaut
    C'est bizarre qu'il n'y ait que la première fonction qui ne soit pas résolue...

    Tu as bien ajouté les fichiers ApiImport.h et ApiImport.cpp dans ton projet, et linké avec les 3 librairies indiquées (lib\FOSDK.lib, winmm.lib, quartz.lib)?

    As-tu essayé la fonction LoadFOSDKAPI(), comme indiqué dans l'exemple C++ Builder (on ne sait jamais..)?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 23
    Par défaut
    En fait les deux fonctions ne sont pas reconnues, j'ai fait une erreur en faisant le copier coller.

    Voici pas à pas ce que j'ai fait :

    - Creer une application Console Win32
    - Dans le dossier des sources, j'ai copié les fichiers ApiImport.cpp, ApiImport.h, quartz.lib et WinMM.Lib
    - Dans le dossier parent, j'ai copié le dossier Lib du SDK
    - Dans les dependances additionnelles j'ai ajouté : ../Lib/ijl15l.lib winmm.lib quartz.lib
    Ensuite mon code est le 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
    // TestFOSDK.cpp: define el punto de entrada de la aplicación de consola.
    //
     
    #include "stdafx.h"
    #define NO_FOSDKLIB_FILE
     
    #ifdef NO_FOSDKLIB_FILE
    // use if compile without FOSDK.Lib
    #include "ApiImport.h"
    #else
    // use if compile with FOSDK.Lib 
    #include "../Lib/FOSDKApi.h"
    #endif
     
    #include "../Lib/ijl.h"
     
    int _tmain(int argc, _TCHAR* argv[])
    {
    	FOSDKInit();
    	FOSDKUninit();
    	return 0;
    }
    Si je commente la ligne #define NO_FOSDKLIB_FILE jái les deux erreurs indique, sinon j'en ai 234.

    Si je rajoute ../Lib/FOSDK.lib aux dependances addicionnels ca ne change rien
    et si j'utilise la fonction LoadFOSDKApi("../Lib/FOSDK.dll") j'obtient l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    error LNK2019: símbolo externo "int __cdecl LoadFOSDKApi(char *)" (?LoadFOSDKApi@@YAHPAD@Z) sin resolver al que se hace referencia en la función _wmain

  4. #4
    Membre Expert
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 940
    Par défaut
    Citation Envoyé par nimport nawak Voir le message
    - Dans le dossier des sources, j'ai copié les fichiers ApiImport.cpp, ApiImport.h, quartz.lib et WinMM.Lib
    Des .lib dans le dossier des sources ?? Tu as référencé correctement quartz.lib et WinMM.lib ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 23
    Par défaut
    Oui je sais, meme pour un newb pour moi c'est choquant mais il n'y a que comme ca que la solution d'utiliser ApiImport.c fonctionne quand décommente
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #define NO_FOSDKLIB_FILE
    Ils ne servent a rien bien sure si je les référence correctement dans les propriétés du projet.

  6. #6
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 392
    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 392
    Par défaut
    Ce sont visiblement des fonctions C, et l'auteur du .h qu'on t'a fourni n'a pas pris en compte le fait qu'il pourrait être inclus depuis un code C++ : Il manque les déclaration extern "C".

    Essaie en entourant l'inclusion comme suit:
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    extern "C"
    {
    #include "leheader.h"
    }
    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.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 23
    Par défaut
    Ca n'a pas l'air de changer grand chose helas.
    Ce que je ne comprends pas, c'est que j'arrive a compiler l'exemple mais si j'essaye de faire la même chose a cote ca ne marche pas. l'exemple ne semble pas utiliser la méthode ApiImport mais simplement Linkage bien configurer, et si je prends la meme configuration dans mon projet ca ne donne pas le resultat exconté.

    En tout cas je continue a tester des choses mais il me manque pas mal de base sur les librairies je pense.

Discussions similaires

  1. Probleme avec visual studio 2005:
    Par Poulain dans le forum Visual Studio
    Réponses: 2
    Dernier message: 30/01/2008, 21h51
  2. Probleme portabilité appli C++/SDL Visual Studio 2005
    Par ben13 dans le forum VC++ .NET
    Réponses: 1
    Dernier message: 18/01/2007, 19h17
  3. probleme code généré sous visual studio 2005
    Par jip06 dans le forum Visual Studio
    Réponses: 2
    Dernier message: 17/01/2007, 22h21
  4. Réponses: 2
    Dernier message: 27/03/2006, 23h43
  5. boost - Probleme avec compilateur C++ de visual studio 2005
    Par gilles641 dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 24/01/2006, 19h03

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