begin process at 2012 05 28 08:26:07
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Général

 > 

Class avec constructeur personnalisé dans une DLL: error LNK2001


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Class avec constructeur personnalisé dans une DLL: error LNK2001

jeudi 15 janvier 2009 à 02:26:07 | Class avec constructeur personnalisé dans une DLL: error LNK2001

orc_undead

Bonjour à vous cher internaute. J'utilise VC++ 2008 et je suis en train d'essayer de créer
une DLL d'une simplicité inégalée. Seulement, un problème se pose: une erreur LNK2001!
Pour faire une histoire courte, ma DLL doit absolument comporter un constructeur personnalisé.
Ce constructeur, comme vous le savez sans doute, me permet d'enregistrer certains
paramètres indispensables au bon fonctionnement de l'objet que représente ma class.

Après plusieurs tentatives, j'ai décidé de créer une class simple pour mettre en évidence
de certaines erreurs dont ma class utile fait face. Voici un peu de code:

CPPDLL.H
-------------------------------------------------------------------------------------
#ifndef CPPDLL_H
#define CPPDLL_H

extern"C"class mathematique
{  
   
private:
      int number;

   public

:
      mathematique(int a);
      void setnumber(int a{ number=a;}
      int cube();
};

#endif//CPPDLL_H

CPPDLL.CPP
-------------------------------------------------------------------------------------
#include"cppdll.h"

mathematique::mathematique(int a)
{
   number = a;
}

int mathematique::cube(){
     return number * number * number;
}

CPPDLL.DEF
-------------------------------------------------------------------------------------
EXPORTS
      mathematique
      setnumber
      cube
-------------------------------------------------------------------------------------

Donc, le problème ici est que j'obtiens 3 erreurs:

1) cppdll.def : error LNK2001: unresolved external symbol mathematique
2) cppdll.def : error LNK2001: unresolved external symbol setnumber
3) .\Debug/cppdll.lib : fatal error LNK1120: 2 unresolved externals


Problème 1:   L'erreur pour laquelle je demande votre aide! J'ai recherché beaucoup, mais je ne trouve rien...
Problème 2:   Pour régler cette erreur, je dois modifier certaines choses:
                            CPPDLL.H :   void setnumber(int a{ number=a;};
                            CPPDLL.CPP: void setnumber(int a{ number=a;}
                      Bien que je sache comment remédier à cette erreur, j'aimerais bien la comprendre...
Problème 3:   Si on règle 1 et 2, celui-ci fera de même!!

J'espère avoir été assez claire dans mes explications pour vous, cher étrangé, puissiez m'aider dans mon incompréhention. Merci de votre aide!

jeudi 15 janvier 2009 à 09:01:03 | Re : Class avec constructeur personnalisé dans une DLL: error LNK2001

Pistol_Pete

Salut
Je vois 2 problèmes possibles.
Le premier, je ne suis pas sur: pourquoi mettre un extern 'C' alors que tu as une classe dans ta dll donc forcement C++?

Pour le second, il faut mettre une signature particulière à toutes les fonctions que tu veux appeler depuis ton programme: __declspec(dllexport) int mathematique::cube(){...}

A+

____________________________________________________________________________
Mon site internet :
  [ Lien ]
[ Lien ]

jeudi 15 janvier 2009 à 10:20:57 | Re : Class avec constructeur personnalisé dans une DLL: error LNK2001

DeAtHCrAsH

Salut,

A ma connaissance, il n'est pas possible de créer des objets à partir d'une classe contenue dans une dll.

Shell


Cette discussion est classée dans : int, class, number, mathematique, cppdll


Répondre à ce message

Sujets en rapport avec ce message

Pb de class [ par SfyLer ] Imaginons :class teste{public:void fonction();void fonction2();};int teste::fonction() {int a = 1;return 0;}int teste::fonction2() {//ici j'aimerais r probleme avec des classes [ par khalilo ] salut a tousj'ai un probleme dans un projet qui consiste a faire un tictactoe avec ia qui apprend.Le probleme est le suivant : sachant que je compile ::WinMain [ par anarchysniper ] Comme ceux qui suivent régulièrement le forum où s'échoue lamentablement sous formes de pitoyables suppliques mes tentatives d'aligner deux instructio Creation de class en C++ [ par js1000 ] Bonjour a tous !Je suis novice en C++ et je suis en train d'apprende les bases. J'ai donc une question a vous posez :Je veux ecrire une classe Matrice Class et fenetre [ par abdoulax ] Bonjour, Je voudrai créer une class qui contient toutes les méthodes correspondant à l'affichage de fenêtre. Le but étant de passé des variables entr Problème d'héritage multiple [ par Aquarian ] Bonjour, Voici un morceau de code sur lequel j'ai un problème, en fait il se compile bien sous Visual Studio .NET 2003 ou sous Dev-cpp, mais il ne fai constructeur herité implicite [ par Guillemouze ] salut a tous, j'ai une question toute bete : est il possible d'appeler implicitement un constructeur d'une class mere?j'ai 3 niveaux de classes; et je probleme avec constructeur surchargé [ par dr971 ] Bonjour je programme un simulateur de course auto en c++ et j'ai un gro prob avec mes classes. en fait j'ai 2 classes : //classe voiture : #ifndef VOI multi heritage [ par foxz ] Bonjour,d'une maniere general.class strm{ // base stream virtual int w(void*,int)=0; // write virtual int r(void*,int)=0; //read};class fil:virtual pu class A:public int ??? [ par foxz ] J'ai besoin de faire ca : class A:public int{}; mais ca ne marche pas. (ni avec float) En fait, je veux cree une class ressemblant a un int mais j'a


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,655 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales