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 :

Migration 2.0 pb c# et c++


Sujet :

C++/CLI

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    47
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 47
    Par d�faut Migration 2.0 pb c# et c++
    Bonjour,

    Tout d'abord, j'aimerais m'excuser car je ne sais pas si je poste au bon endroit.

    Je suis en train de reprendre un projet.
    Je dois migrer une application web �crit en 1.1 en 2.0


    Dans cette application j'ai :
    • un projet �crit en : C,C++ borland, C++ non manag�,MFC
    • plusieurs projets C#
    • un projet asp.net


    J'ai r�ussis � migrer mon projet grace � visual studio.
    Le projet c++ a �t� compil� en /clr:oldsyntax
    Il est appel� dans le code c#

    Lorsque j'ex�cute mon code, j'ai une erreur COM
    Le code c# et c++ n'arrivent pas � communiquer

    J'aimerais avoir quelques pistes car l� j'avoue je n'ai aucune id�e.

  2. #2
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    il faudrait un peu plus de pr�cisions

    C# communique avec ton projet C++ par com interop ?
    ton projet C++ est une dll native ? une assembly ?
    si c'est une dll native, pourquoi utiliser /clr:oldsyntax ?
    si c'est une assembly, pourquoi utiliser com interop ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    47
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 47
    Par d�faut
    Salut,

    Je souhaiterai te remercier pour tes questions


    Citation Envoy� par nico-pyright(c) Voir le message
    il faudrait un peu plus de pr�cisions
    C# communique avec ton projet C++ par com interop ?
    oui
    Citation Envoy� par nico-pyright(c) Voir le message
    ton projet C++ est une dll native ? une assembly ?
    si c'est une dll native, pourquoi utiliser /clr:oldsyntax ?
    mon projet c++ est une dll
    en fait, il ya du c, c++ non manag�, MFC donc il ya que avec le /clr:oldsyntax que mon code compile
    J'ai eu beaucoup de mal � trouv� les bonnes options de compilation car �a n'a pas voulu compiler au d�but.

    Je suis nulle ou d�butante (si on veut etre gentil avec moi)

    Je ne sais pas quel d�marche faire pour que mon application se migre correctement

    � ton avis, c'est possible que je puisse migrer l'application?

  4. #4
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    � mon avis, c'est possible de migrer, mais pas forc�ment n�cessaire.
    Et si c'est une dll native, alors pas besoin de /clr, il suffit de compiler avec aucun support du CLR http://dotnet.developpez.com/faq/cpp...mode#nomanaged
    D'autant plus si ta dll est un objet COM

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    47
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 47
    Par d�faut
    Citation Envoy� par nico-pyright(c) Voir le message
    � mon avis, c'est possible de migrer, mais pas forc�ment n�cessaire.
    Et si c'est une dll native, alors pas besoin de /clr, il suffit de compiler avec aucun support du CLR http://dotnet.developpez.com/faq/cpp...mode#nomanaged
    D'autant plus si ta dll est un objet COM
    Salut,

    je viens d'essayer de compiler sans option clr
    et j'ai ce genre d'erreur :
    Erreur 1 error C2653: 'System' : n'est pas un nom de classe ni d'espace de noms
    je suis vraiment trop nul,
    je ne sais pas si ma dll est un objet com ou non

  6. #6
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    si y a du System, c'est qu'y a du .net alors, il faut garder un switch /clr

    si tu enleves le oldsyntax, quel genre d'erreur as-tu ?

    Difficile de t'aider si tu ne sais pas ce qu'il ya dans ton projet

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    47
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 47
    Par d�faut
    Citation Envoy� par nico-pyright(c) Voir le message
    si y a du System, c'est qu'y a du .net alors, il faut garder un switch /clr

    si tu enleves le oldsyntax, quel genre d'erreur as-tu ?

    Difficile de t'aider si tu ne sais pas ce qu'il ya dans ton projet
    j'ai repris ce projet m�me si j'ai pas les comp�tences

    dans mon projet il ya de tout

    il a un lourd historique et il a �t� cod� un peu n'importe comment:
    par exemple tu as :
    • le c++ appel des fonctions c
    • des classes mfc
    • des classes non manag�
    • tu as dans une m�thode du c++ manag� et non manag�

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    47
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 47
    Par d�faut
    Erreur 866 error C3699: 'interior_ptr' : impossible d'utiliser cette indirection sur le type 'System::String'

    Erreur 868 error C2678: '==' binaire : aucun op�rateur trouv� qui accepte un op�rande de partie gauche de type 'System::IntPtr' (ou il n'existe pas de conversion acceptable)

    Erreur 870 error C4980: '__gc' : l'utilisation de ce mot cl� requiert l'option de ligne de commande /clr:oldSyntax

    Erreur 463 error C3699: '*' : impossible d'utiliser cette indirection sur le type 'Stime::Net::Aviso::Commun:roxy:xCDate'

    Erreur 497 error C2728: 'System::IntPtr' : un tableau natif ne peut pas contenir ce type manag�

    Erreur 144 error C3699: '*' : impossible d'utiliser cette indirection sur le type 'System::String'

    etc...

  9. #9
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    dans ce cas, soit il te faut garder le oldsyntax, soit il te faut r��crire les parties manag�es en C++/CLI, tout d�pend s'il y en a beaucoup ou pas.

    Cela veut donc dire que tu exposes des objets manag�s qui peuvent etre utilis�s avec une r�f�rence dans ton projet C#

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    47
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 47
    Par d�faut
    Citation Envoy� par nico-pyright(c) Voir le message
    dans ce cas, soit il te faut garder le oldsyntax, soit il te faut r��crire les parties manag�es en C++/CLI, tout d�pend s'il y en a beaucoup ou pas.

    Cela veut donc dire que tu exposes des objets manag�s qui peuvent etre utilis�s avec une r�f�rence dans ton projet C#
    Merci beaucoup pour ton aide

    Je ne peux pas r��crire le code car il ya en beaucoup trop
    J'ai un peu plus de 2 millions de ligne de code dans mon projet c++

    Avec le oldsyntax, mon c# et mon c++ ne communique pas

  11. #11
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    comment tentes-tu de les faire communiquer ?

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    47
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 47
    Par d�faut
    Citation Envoy� par nico-pyright(c) Voir le message
    comment tentes-tu de les faire communiquer ?
    dans le code c#, on appel tout simplement la m�thode c++

    je ne sais pas si je r�pond bien � ta question

    en fait le code a �t� d�vellop� en offshore et la en est en train de le reprendre

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    47
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 47
    Par d�faut
    Je te donne le message d'erreur :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    L'exception System.Runtime.InteropServices.COMException n'a pas été gérée par le code utilisateur
      Message="Descripteur non valide (Exception de HRESULT : 0x80070006 (E_HANDLE))"
      Source="mscorlib"
      ErrorCode=-2147024890
      StackTrace:
           à System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)
           à System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(Int32 errorCode)
           à System.Runtime.InteropServices.Marshal.FreeHGlobal(IntPtr hglobal)
           à _app_exit_callback()
           à <CrtImplementationDetails>.LanguageSupport.UninitializeAppDomain()
           à <CrtImplementationDetails>.LanguageSupport.Cleanup(LanguageSupport* , Exception innerException)

  14. #14
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    on appelle la m�thode C++ ok, mais comment a-t-elle �t� "d�clar�e" ?

    Avec une r�f�rence ? un import ?

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    47
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 47
    Par d�faut
    Citation Envoy� par nico-pyright(c) Voir le message
    on appelle la m�thode C++ ok, mais comment a-t-elle �t� "d�clar�e" ?

    Avec une r�f�rence ? un import ?
    avec une r�f�rence

  16. #16
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    ben, alors, je vois pas ce que viennent faire des erreurs de marshaling ...

    j'avoue ne pas comprendre trop comment fonctionne ton projet ... t'aurais pas un projet minimal qui reproduit l'erreur ?

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    47
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 47
    Par d�faut
    Citation Envoy� par nico-pyright(c) Voir le message
    ben, alors, je vois pas ce que viennent faire des erreurs de marshaling ...

    j'avoue ne pas comprendre trop comment fonctionne ton projet ... t'aurais pas un projet minimal qui reproduit l'erreur ?
    euh non

    merci beaucoup pour ton aide

Discussions similaires

  1. [MySQL -> PostGreSQL] Migration
    Par Nepomiachty Olivier dans le forum Administration
    R�ponses: 9
    Dernier message: 23/04/2010, 16h33
  2. Pb migration Access / SQL server
    Par yoyo dans le forum MS SQL Server
    R�ponses: 10
    Dernier message: 25/04/2005, 10h39
  3. migration de ms access xp vers primebase
    Par d@rkness dans le forum Autres SGBD
    R�ponses: 2
    Dernier message: 17/11/2002, 00h08
  4. [Migratation] Application portable, ind�pendant du SGDB
    Par benouille dans le forum D�cisions SGBD
    R�ponses: 6
    Dernier message: 28/08/2002, 13h51
  5. [Kylix] Migration delphi -> kylix
    Par Christian dans le forum EDI
    R�ponses: 1
    Dernier message: 03/04/2002, 22h50

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