Class avec constructeur personnalisé dans une DLL: error LNK2001
orc_undead
Messages postés5Date d'inscriptionmercredi 9 juin 2004StatutMembreDernière intervention15 janvier 2009
-
15 janv. 2009 à 02:26
DeAtHCrAsH
Messages postés2670Date d'inscriptionvendredi 25 janvier 2002StatutMembreDernière intervention 6 février 2013
-
15 janv. 2009 à 10:20
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:
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:
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) <strike>{ number=a;</strike><strike>}</strike>;
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!
A voir également:
Class avec constructeur personnalisé dans une DLL: error LNK2001
Pistol_Pete
Messages postés1053Date d'inscriptionsamedi 2 octobre 2004StatutMembreDernière intervention 9 juillet 20137 15 janv. 2009 à 09:01
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
(){...}