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 :

[C++.NET] Error lnk2001 : il ne reconnait pas l'op new !!


Sujet :

MFC

  1. #1
    Candidat au Club
    Inscrit en
    Septembre 2003
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 4
    Points : 4
    Points
    4
    Par défaut [C++.NET] Error lnk2001 : il ne reconnait pas l'op new !!
    Sous .Net 2003, j'ai cree une dll c++ (using managed c++), dans laquelle j'ai declare une classe, MyClass, non managee (__nogc), parceque j'ai vraiment beoin de creer et detruire cette classe moi-meme, c'est important.

    J'essaie d'instancier cette classe avec l'operaeur new :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyClass* ptrMyClass = new MyClass();
    Et il m'envoie 2 erreurs de link :
    lnk2001 : unresolved external symbol __cdecl new(...)
    lnk2001 : unresolved external symbol __cdecl delete(...)
    J'ai meme essaye de supprimer l'option using managed exetesions, mais ca ne marche pas mieux...

    Que dois-je faire pour qu'il reconnaisse l'operateur new ?

    Ca doit etre tout con, mais j'ai pas mal cherche deja je n'ai pas trouve.
    Je vous remercie pour votre aide.

    [Sujet déplacé par freegreg]
    [Balises
    [Code] et [Quote](Citation) ajoutées]
    [Merci de lire les Règles du Forum .NET avant de poster.]
    [Pensez-y, vous-même, la prochaine fois. Merci ]

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Points : 730
    Points
    730
    Par défaut
    euh, pour le message d'erreur lui-même je ne sais pas, mais là tu crées une variable de type MyClass, pas un pointeur. Donc ça devrait plutôt être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyClass myClass = new MyClass();
    C'est peut-être juste ça qui ne lui plait pas, faut voir :)

  3. #3
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Août 2002
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2002
    Messages : 106
    Points : 113
    Points
    113
    Par défaut
    Citation Envoyé par Maniak
    euh, pour le message d'erreur lui-même je ne sais pas, mais là tu crées une variable de type MyClass, pas un pointeur. Donc ça devrait plutôt être Code:
    MyClass myClass = new MyClass();

    On peut donc faire un new sans que ce soit un pointeur???????? : :

    Si quelqu'un d'autres pouvaient confirmer cette affirmation, je vais me remettre à lire un tutorial C++ après parce que là, je dois avoir une sacrée lacune.

    Merci

  4. #4
    Candidat au Club
    Inscrit en
    Septembre 2003
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    En fait j'ai compris le probleme et je vais repondre a Jul54 par la meme occasion :
    --> lorsqu'on choisit Class Library(.NET) pour faire une dll, on cree en fait une dll c++ manage, et pas moyen d'utiliser des pointeurs dans ces dll managees (ou peut-etre en jouant avec les __nogc et #pragma unmanaged, mais moi perso, je n'ai pas reussi ... si quelqu'un sait faire pourquoi pas).
    ET EN C++ MANAGE, L'OPERATEUR NEW RENVOIE UN OBJET ET NON UN POINTEUR SUR L'OBJET, EN L'OCCURENCE, C'EST BON A SAVOIR : aucun pointeur en c++ manage.
    --> en revanche, pour faire une dll c++ natif (ce que je voulais faire en fait, pour l'apeller depuis du manage ensuite), il faut choisir un Win32 project, et la on peut utiliser les pointeurs tout comme il faut, tout normal quoi ...

    Merci a tous pour votre aide,
    Desolee pour la mise en page de mon message, je ferai mieux la prochaine fois monsieur l'administrateur.

  5. #5
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Août 2002
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2002
    Messages : 106
    Points : 113
    Points
    113
    Par défaut
    J'avais pas fait gaffe à .NET. Décidément, encore un langage ou ils ont éliminés les pointeurs , moi je les aimais bien

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.NET] Update qui ne se réalise pas
    Par totoche dans le forum ASP.NET
    Réponses: 4
    Dernier message: 20/05/2005, 11h16
  2. [Debutant(e)]StreamTokenizer: ne reconnait pas les floats!!
    Par doudine dans le forum Entrée/Sortie
    Réponses: 8
    Dernier message: 10/12/2004, 17h28
  3. [HARDWARE] Graveur DVD ne reconnait pas des DVD
    Par Yepazix dans le forum Périphériques
    Réponses: 2
    Dernier message: 30/11/2004, 15h22
  4. [VB.NET] Error: There can be only one 'page' directive
    Par Redouane dans le forum ASP.NET
    Réponses: 2
    Dernier message: 24/11/2004, 19h16
  5. Installation : ne reconnait pas le CDROM
    Par SebCBien dans le forum Matériel
    Réponses: 4
    Dernier message: 08/08/2004, 17h10

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