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

Utiliser une classe C++ dans un projet C++/CLI


Sujet :

C++/CLI

  1. #1
    Membre confirm�

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    126
    D�tails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2004
    Messages : 126
    Par d�faut Utiliser une classe C++ dans un projet C++/CLI
    Bonjour � tous,

    Je pense que je poste au bon endroit (enfin j'esp�re...).
    Voil� le probl�me : J'ai un projet en C++ utilisant la technologie Dotnet. Pour le moment il s'agit de quelque chose de tout simple.
    A c�t� de �a, j'ai une classe �crite en C++ "classique" : soit un fichier .h et un .cpp.
    Je voudrais pouvoir cr�er un objet de ma classe dans mon appli Dotnet. Pour le moment j'ai test� en ajoutant les deux fichiers sources � mon appli mais sans m�me instancier d'objet, le programme compile mais plante � l'ex�cution avec une erreur du style :

    Debug Assertion Failed!

    Program: [...]MonAppli.exe
    File: f:\dd\vctools\crt_bld\self_x86\crt\src\dbgheap.c

    Expression: _CrtIsValidHeapPointer(pUserData)
    Il y a p-e quelque chose de sp�cial � faire mais je vois pas trop...

  2. #2
    Membre confirm�

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    126
    D�tails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2004
    Messages : 126
    Par d�faut
    Bon... Du coup je vois pas bien ce qui cloche... J'ai suivi ceci : http://nico-pyright.developpez.com/t...c2005/interop/

    J'ai donc une appli C++/CLI en mode de compilation mixte (/clr). Il s'agit d'une appli graphique (je sais pas si �a peut changer qque chose, on sait jamais).
    Dans ce projet, j'ajoute ma classe C++ (le .cpp et le .h).

    Puis dans mon Form1.cpp, j'ajoute simplement #include "maclasse.h"

    Et toujours le m�me message d'erreur.

    Pire encore, m�me en commentant le #include l'erreur est toujours l�. Et pas moyen de d�bugger vu que cette erreur intervient avant m�me l'appel au main()...

    Une id�e?

    PS : la classe que j'ajoute fonctionne tr�s bien, elle est utilis�e dans des projets C++ classique sans probl�mes.

  3. #3
    Membre confirm�

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    126
    D�tails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2004
    Messages : 126
    Par d�faut
    Bon, un peu de nouveau apr�s y avoir pass� quelques heures :

    Il semblerait que ce soit le #include <atltime.h> qui soit � l'origine de tout �a...

    Du coup, je veux bien l'enlever mais j'utiliser deux _T() dans mon programme... Pour cette ligne :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    hResult = ptrSchemaCache->add(_bstr_t( _T("http://www.topografix.com/GPX/1/1")), _variant_t( _T("D:\\gpx.xsd")));
    Y'a-t-il une alternative � �a de fa�on � virer cet include?
    Et est-ce que quelqu'un � une id�e du pourquoi du comment de �a?

    PS : il semblerait que #include <atlstr.h> fasse la m�me chose... Donc j'imagine qu'il y a un rapport avec ATL...

  4. #4
    Membre confirm�

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    126
    D�tails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2004
    Messages : 126
    Par d�faut
    Bon, je continue de m'auto-r�pondre

    Une fois le probl�mes des headers ATL r�solus, il semble que tout ceci vienne des "types" _bstr_t et _variant_t...

    Je testerai donc �a demain matin... Cel� dit c'est quand m�me un peu �trange (et un peu n'importe quoi )!!!

    Si quelqu'un a une explication plausible � cela je suis preneur!

  5. #5
    Membre confirm�

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    126
    D�tails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2004
    Messages : 126
    Par d�faut
    Bon et bien c'est finalement r�solu apr�s deux jours pass�s dessus...

    Pour r�sumer un peu ce qui ne fonctionnait pas (et je ne sais toujours pas pourquoi mais enfin...) :

    • Les headers ATL
    • Les _bstr_t et _variant_t
    • Et enfin, sans que �a fasse planter le programme mais �a ne fonctionnait pas quand m�me : l'utilisation de msxml6 via l'import de la DLL. J'ai du modifier mon code pour utiliser msxml6 via le .h et le .lib...

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 3
    Dernier message: 05/12/2012, 03h26
  2. Utiliser une classe personnelle dans un vector
    Par Mindiell dans le forum SL & STL
    R�ponses: 16
    Dernier message: 01/03/2007, 17h42
  3. R�ponses: 1
    Dernier message: 09/09/2006, 21h52
  4. [COM] Comment utiliser une dll DotNet dans un projet win32 ?
    Par Marmottoc dans le forum API, COM et SDKs
    R�ponses: 8
    Dernier message: 05/05/2006, 15h58

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