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 VS.NET2003 -> VSPro2008 et erreur /clr option


Sujet :

C++/CLI

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    6
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 6
    Par d�faut Migration VS.NET2003 -> VSPro2008 et erreur /clr option
    Bonjour � tou(te)s,

    On m'a confi� un projet d�velopp� sous Visual Studio .NET 2003, � reprendre en utilisant Visual Studio 2008 (Professional Edition).

    A la compilation du projet, on obitent l'erreur suivante:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    cl : Command line error D8045 : cannot compile C file '.\Include\PC_Components\xml\xmlfind.c' with the /clr option
    Si j'essaie d'inhiber l'option /CLR de la compilation depuis le champs "Common Language Runtime Support" (dsl je suis en Anglais) de l'onglet General des propri�t�s de configuration du projet, j'obtiens tout un tas d'erreur, ce qui semble indiquer que le projet necessite bien le Management de code.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    c:\PROJET\Form1.h(1708) : error C2653: 'System' : is not a class or namespace name
    c:\PROJET\Form1.h(1708) : error C2065: 'String' : undeclared identifier
    c:\PROJET\Form1.h(1708) : error C2065: 'Text' : undeclared identifier
    c:\PROJET\Form1.h(1708) : error C2653: 'System' : is not a class or namespace name
    c:\PROJET\Form1.h(1708) : error C2061: syntax error : identifier 'String'
    c:\PROJET\Form1.h(1709) : error C2653: 'System' : is not a class or namespace name
    c:\PROJET\Form1.h(1709) : error C2065: 'String' : undeclared identifier
    c:\PROJET\Form1.h(1709) : error C2065: 'Caption' : undeclared identifier
    c:\PROJET\Form1.h(1709) : error C2653: 'System' : is not a class or namespace name
    c:\PROJET\Form1.h(1709) : error C2061: syntax error : identifier 'String'
    c:\PROJET\Form1.h(1711) : error C2653: 'System' : is not a class or namespace name
    c:\PROJET\Form1.h(1711) : error C2065: 'Text' : undeclared identifier
    c:\PROJET\Form1.h(1711) : error C2065: 'Caption' : undeclared identifier
    c:\PROJET\Form1.h(1711) : error C3861: 'Show': identifier not found
    c:\PROJET\Form1.h(1716) : error C2653: 'System' : is not a class or namespace name
    c:\PROJET\Form1.h(1716) : error C2065: 'String' : undeclared identifier
    c:\PROJET\Form1.h(1716) : error C2065: 'Text' : undeclared identifier
    c:\PROJET\Form1.h(1716) : error C2062: type 'int' unexpected
    c:\PROJET\Form1.h(1717) : error C2143: syntax error : missing ';' before '{'
    c:\PROJET\Form1.h(1717) : error C2447: '{' : missing function header (old-style formal list?)
    c:\PROJET\Form1.h(1762) : error C2871: 'System' : a namespace with this name does not exist
    c:\PROJET\Form1.h(1763) : error C2653: 'System' : is not a class or namespace name
    c:\PROJET\Form1.h(1763) : error C2871: 'ComponentModel' : a namespace with this name does not exist
    c:\PROJET\Form1.h(1764) : error C2653: 'System' : is not a class or namespace name
    c:\PROJET\Form1.h(1764) : error C2871: 'Collections' : a namespace with this name does not exist
    c:\PROJET\Form1.h(1765) : error C2653: 'System' : is not a class or namespace name
    c:\PROJET\Form1.h(1765) : error C2871: 'Forms' : a namespace with this name does not exist
    c:\PROJET\Form1.h(1766) : error C2653: 'System' : is not a class or namespace name
    c:\PROJET\Form1.h(1766) : error C2871: 'Data' : a namespace with this name does not exist
    c:\PROJET\Form1.h(1767) : error C2653: 'System' : is not a class or namespace name
    c:\PROJET\Form1.h(1767) : error C2871: 'Drawing' : a namespace with this name does not exist
    c:\PROJET\Form1.h(1778) : error C4980: '__gc' : use of this keyword requires /clr:oldSyntax command line option
    c:\PROJET\Form1.h(1778) : error C3630: error when processing the token '__gc'
    c:\PROJET\Form1.h(1778) : fatal error C1190: managed targeted code requires a '/clr' option
    AssemblyInfo.cpp
    .\AssemblyInfo.cpp(3) : error C2653: 'System' : is not a class or namespace name
    .\AssemblyInfo.cpp(3) : error C2871: 'Reflection' : a namespace with this name does not exist
    .\AssemblyInfo.cpp(4) : error C2653: 'System' : is not a class or namespace name
    .\AssemblyInfo.cpp(4) : error C2871: 'CompilerServices' : a namespace with this name does not exist
    .\AssemblyInfo.cpp(11) : error C2337: 'AssemblyTitleAttribute' : attribute not found
    .\AssemblyInfo.cpp(12) : error C2337: 'AssemblyDescriptionAttribute' : attribute not found
    .\AssemblyInfo.cpp(13) : error C2337: 'AssemblyConfigurationAttribute' : attribute not found
    .\AssemblyInfo.cpp(14) : error C2337: 'AssemblyCompanyAttribute' : attribute not found
    .\AssemblyInfo.cpp(15) : error C2337: 'AssemblyProductAttribute' : attribute not found
    .\AssemblyInfo.cpp(16) : error C2337: 'AssemblyCopyrightAttribute' : attribute not found
    .\AssemblyInfo.cpp(17) : error C2337: 'AssemblyTrademarkAttribute' : attribute not found
    .\AssemblyInfo.cpp(18) : error C2337: 'AssemblyCultureAttribute' : attribute not found
    .\AssemblyInfo.cpp(31) : error C2337: 'AssemblyVersionAttribute' : attribute not found
    .\AssemblyInfo.cpp(55) : error C2337: 'AssemblyDelaySignAttribute' : attribute not found
    .\AssemblyInfo.cpp(56) : error C2337: 'AssemblyKeyFileAttribute' : attribute not found
    .\AssemblyInfo.cpp(57) : error C2337: 'AssemblyKeyNameAttribute' : attribute not found
    J'ai lu qu'on pouvait inhiber l'action de l'option /CLR � la compilation pour des fonctions particuli�res, en utilisant un #pragma unmanaged .
    J'ai essay� de l'ins�rer en d�but de fichier xmlfind.c mais il m'indique encore la m�me erreur...

    Pour dire vrai, je ne connais pas grand chose � la notion de "Code Management"...
    J'ai not� �galement une conversion de fichiers (*.sln, *.vcproj et c'est tout a priori) n�cessaire pour migrer en Visual2008, si par hasard il y aurait un lien...
    Quelqu'un aurait-il une piste, ou des conseils ??

    Merci d'avance

  2. #2
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par d�faut
    Je peux au moins te confirmer que vu le message d'erreur, le code que tu dois convertir utilise le framework (System, String, Text, Caption sont des namespaces et des classes du framework).

    Du peu que je sais du mixed mode (natif + clr), on peut en effet affiner le comportement du compilo avec des #pragma unmanaged. La FAQ C++/CLI de ce site apporte quelques �l�ments de r�ponse, tu devrais jeter un chtit coup d'�il si c'est pas d�j� fait

  3. #3
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par d�faut
    J'y pense ! Ton projet vient de Visual 2003 ? En framework 1.1, le langage C++ �tait du "managed c++", tout moche, avec des __gcnew. Il a �t� remplac� avec Visual 2005 et le framework 2 par le C++/CLI, qui a une syntaxe plus esth�tique (entre autres qualit�s, mais je n'ai pas approfondi).

    Tout �a pour dire que tu dois changer une option de compilation � "oldsyntax". je ne sais plus laquelle, mais �a devrait te suffire

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    6
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 6
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    Tout ça pour dire que tu dois changer une option de compilation à "oldsyntax"
    J'ai essay� l'option du compilo "Common Language Runtime, Old Syntax (/clr:oldSyntax)" mais l'erreur reste la m�me.


    En framework 1.1, le langage C++ �tait du "managed c++" ... Il a �t� remplac� avec Visual 2005 et le framework 2
    Ok, donc cela viendrait plutot de la version du Framework... h�las, dans "Common properties", j'ai 3 choix possibles de "Targeted Framework": .NET Framework 2.0 (par d�faut), 3.0 ou 3.5. Il faudrait qu'il me propose le 1.0 c'est bien cela ?

    Il doit bien y avoir moyen de charger le Framework de notre choix, ou de le personnaliser, si ces outils sont bien foutus non ?

    Peut �tre qu'il y a possibilit� de le convertir en Framework 2.0 � l'aide d'un Visual 2005 puis de travailler avec 2008? J'imagine mal qu'on ai pas pu r�cup�rer un travail de 2003 en 2005, sur lequel on aurait continuer de travailler et se retrouver bloquer une fois la version suivante (2008) sortie, non ?

    Merci pour les pistes en tout cas !

  5. #5
    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
    tu peux surtout d�finir unitairement quels fichiers tu veux compiler avec l'option /clr
    tu as surement certains fichiers entierement natif qui n'ont pas besoin de cette option

  6. #6
    R�dacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activit� : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par d�faut
    Seul VS.NET (2003) permet de compiler un projet pour le framework 1.1
    Toute tentative de compilation en utilisant un VS 2005 ou 2008 passera par la conversion du projet.
    Besoin d'un MessageBox am�lior� ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les acc�s aux donn�es
    D�bogage efficace en .NET
    LINQ to Objects : l'envers du d�cor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribu�es - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  7. #7
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par d�faut
    Citation Envoy� par mig73 Voir le message
    Ok, donc cela viendrait plutot de la version du Framework... h�las, dans "Common properties", j'ai 3 choix possibles de "Targeted Framework": .NET Framework 2.0 (par d�faut), 3.0 ou 3.5. Il faudrait qu'il me propose le 1.0 c'est bien cela ?
    Non, cela ne vient pas de la version du framework. Nico-pyright en sait bien plus que moi sur le sujet, mais ce que j'ai compris, c'est qu'il existe deux syntaxes diff�rentes pour le C++ manag� : la moche et le CLI. La moche (nomm�e Managed C++) �tait la seul disponible avec visual 2003, mais elle est toujours compilable par les versions ult�rieures de Visual via l'option oldsyntax.

    Il est donc il me semble tout � fait possible d'utiliser les frameworks r�cents avec l'ancienne syntaxe.

Discussions similaires

  1. R�ponses: 0
    Dernier message: 21/04/2011, 12h04
  2. Erreur /clr en Release et non en Debug
    Par Myzha dans le forum C++/CLI
    R�ponses: 1
    Dernier message: 18/06/2010, 17h15
  3. Migration de donn�es via Proc�dures stock�es, erreur timeout
    Par Arnard dans le forum Acc�s aux donn�es
    R�ponses: 6
    Dernier message: 01/10/2009, 13h17
  4. Erreur CLR 80004005
    Par kineton dans le forum C#
    R�ponses: 5
    Dernier message: 18/03/2009, 13h40
  5. Migration vers VS 2008 : message d'erreur � l'�x�cution
    Par troubleshooting dans le forum G�n�ral Dotnet
    R�ponses: 0
    Dernier message: 29/07/2008, 13h59

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