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 :

[C++ 2005] Erreur C3699


Sujet :

C++/CLI

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre chevronn�
    Inscrit en
    Ao�t 2004
    Messages
    556
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2004
    Messages : 556
    Par d�faut [C++ 2005] Erreur C3699
    bjr,

    sur ce code:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    sing namespace System;
    int main() {
       String * s;   // C3699
    }
    j'obtiens l'erreur C3699 : '*' : cannot use this indirection on type 'String'

    ce qui m'ennui c'est que j'ai envie d'utiliser * et pas ^ car j'ai r�cup�rer un code source compl�tement �cris de cette fa�on et j'ai pas envie de m'amuser � tout refaire parce que mon compilateur veut comme ca.

    c'est possible?

    mon compilateur est VS 2005 Pro

    merci d'avance

  2. #2
    Membre �m�rite
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    D�tails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Par d�faut
    Bizarre.

    Montre le code source complet depuis les includes.
    et donne le message complet du compilo

  3. #3
    Membre �m�rite
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    D�tails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Par d�faut
    Est-ce un projet manag� ou natif que tu as g�n�r� :

  4. #4
    Membre chevronn�
    Inscrit en
    Ao�t 2004
    Messages
    556
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2004
    Messages : 556
    Par d�faut
    voici le code source:
    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
     
    // Loader.cpp : main project file.
     
    #using <mscorlib.dll>
    #using <System.dll>
    #include <vcclr.h>
    #include <stdio.h>
    #include <tchar.h>
     
    using namespace System;
    using namespace System::Reflection;
     
    int main(array<System::String ^> ^args)
    {
        try {
          // Load library dynamically:
          Assembly* a = Assembly::Load("CPlugin");
          if (a) {
             Console::WriteLine("Assembly = {0}", a);
             Type* t = a->GetType("MyLib.MyClass");
             if (t) {
                Console::WriteLine("Type     = {0}", t);
                MethodInfo* m = t->GetMethod("SayHello");
                if (m) {
                   Console::WriteLine("Method   = {0}\n", m);
                   String* args[] = {"Test2"};
                   m->Invoke(NULL, args);
                } else {
                   printf("Can't find SayHello!\n");
                }
             } else {
                printf("Can't find MyLib.MyClass!\n");
             }
          } else {
             printf("Can't load MyLib!\n");
          }
       } catch (Exception* e) {
          Console::WriteLine("*** Oops: Exception occurred: {0}", e);
       }
        return 0;
    }
    code repris tel quel sur le msdn:

    lien

    je compile en tant que projet CLR

    j'ai des erreurs � chaque fois que j'ai un '*' apr�s un objet manag�

  5. #5
    Membre �m�rite
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    D�tails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Par d�faut
    Je crois que tu devrais mettre '^' au lieu de '*' parce que ces objets sont automatiquement lib�r�s � la fin de programme par le GC.
    Si ce n'est que ces quelques lignes ce n'est pas pas couteux de faire un simple remplacement. Et d'ailleurs en utilisant des '*' tu ne lib�res pas explicitement les objets dans le code.

    AU fait le code que tu as pris dans l'MSDN, tu as d� donc cr�er un projet Console Managed?
    Et le compilo dit exactement quoi?

  6. #6
    Membre chevronn�
    Inscrit en
    Ao�t 2004
    Messages
    556
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2004
    Messages : 556
    Par d�faut
    J'ai mis le code ci-dessus � titre d'exemple, j'ai bien une classe qui a �t� compl�tement �crite comme �a et impossible de le faire fonctionner.
    convertir 2000 lignes c't'un peu lourd :s

    voui c'est une Console Managed

    l'erreur exact est:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    1>.\test.cpp(9) : error C3699: '*' : cannot use this indirection on type 'System::String'
    1>        compiler replacing '*' with '^' to continue parsing
    merci encore de ton aide !

  7. #7
    Expert confirm�

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par d�faut
    System::String est un type .Net, tu fais du C++ CLI et pas du C++ "normal" natif. Les pointeurs sur types .Net sont d�clar�s avec un "chapeau" ^ au lieu de *.
    Le code que tu as repris de la msdn, c'est du Managed C++, l'ancienne syntaxe avant l'apparition du C++ CLI.

Discussions similaires

  1. [Visual Studio 2005] Erreur de compli
    Par Nico28 dans le forum Visual C++
    R�ponses: 8
    Dernier message: 11/12/2012, 12h37
  2. [VB.net 2005] Erreur de connexion � Access
    Par PoZZyX dans le forum Windows Forms
    R�ponses: 4
    Dernier message: 08/09/2006, 12h01
  3. [VB.NET 2005] Erreur lors d'un envois de mail
    Par mimil77210 dans le forum Windows Forms
    R�ponses: 3
    Dernier message: 08/06/2006, 14h00
  4. Visual Studio 2005 : erreur C2668
    Par Patriarch24 dans le forum MFC
    R�ponses: 2
    Dernier message: 26/04/2006, 17h34
  5. Delphi 2005 : Erreur de compilation du programme
    Par bigbestboy dans le forum Langage
    R�ponses: 6
    Dernier message: 03/08/2005, 18h14

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