Visual C++ 6.0, IntelliSense



  • Hallo und danke für die Antwort.

    Also in der FAQ hab ich nur gefunden, was man machen soll wenn einem die Klassenansicht flöten geht. Das habe ich schon früher gemacht (also die Dateien löschen) aber das bringt auch nix. Visual Assistant habe ich auch getestet, brachte aber auch nichts!
    Wiegesagt, wenn ich den Source verschiebe, sodass es weniger includes gibt, funzt es. Nur so nicht!

    Gruß,

    Mark



  • Mit VisualAssist tut das unter Garantie!



  • Hmm was soll ich dazu sagen?
    Ich habe die neueste version installiert (die Beta) und es geht nicht!
    (VA funzt da ich es mit einem anderen Projekt getestet habe)
    Gibt es vielleicht unterschiedliche Methoden, header dateien zu includen???

    Gruß,

    Mark



  • Du wirst wohl "#include" verwenden ... Stimmen irgendwelche Pfade bei dir nicht oder ähnliches? VA hat bei mir bisher noch jedes Symbol gefunden...



  • Jo #include "datei.h"

    naja die Pfade müssen ja korrekt sein denn es lässt sich auch kompilieren.

    Die Struktur sieht ungefähr so aus:

    main.cpp:
    #include "class.h"

    class.h:
    class bla
    {
    };

    #include "a.h"

    a.h:
    class abc
    {
    };

    #incldue "b.h"

    b.h:
    class bca
    {
    };

    #include "c.h"

    c.h:
    class dbc
    {
    };

    so und wenn ich mich jetzt in c.h befinde, so funktioniert gar nix was die Listen angehen. (also wenn ich die klammer bei MessageBox aufmache, erscheint nichts).
    Wenn ich mich allerdings in der main.cpp befinde, und ich zeiger auf die verschiedene classes schreibe (jede übergeordnete klasse hat einen zeiger auf die nächste klasse, also quasi pbla->pabc->pbca->pdbc, funktioniert die Auflistung nur bis pbca, danach ist schluss (mit VA und ohne VA)
    Hoffe das ist jetzt einigermaßen versztändlich?

    Natürlich befinden sich die header dateien in unterschiedlichen Verzeichnissen...

    Gruß,

    Mark



  • hm, keine Ahnung, was da schief läuft ... Aber wieso machst du deine Includes an's Ende der Headerdateien?



  • Ich habe hier ein Testprojekt erstellt, wo der Fehler auftritt (sowohl in VC als auch in VA)

    http://users.skynet.be/mark.foti/Test.zip

    (ungefähr 3 kb groß)

    Die includes werden so gemacht, weil die klasse B (im test projekt) mehrere klassen beinhaltet und jede klasse auf die anderen klassen zugreifen müssen.
    Deswegen müssen doch erst alle klassenköpfe gemacht werden.
    Geht das auch ander?

    Gruß,

    Mark



  • Kannst du mir ne plausible erklärung für so nen Quark geben?

    class Class1::Class2::Class3
    


  • Wie würdest du es machen??



  • Ganz normal ? Dann klappts nämlich auch mit dem IntelliSense:

    .\main.cpp:

    #include <stdio.h>
    #include <stdlib.h>
    #include <windows.h>
    
    #include "A\\class1.h"
    
    void main()
    {
    	pClass1 = new Class1();
    
    	pClass1->pClass2-> pClass3->Test();
    }
    

    .\A\class1.h:

    #include "B\\class2.h"
    
    class Class1
    {
    public:
    	Class1();
    	~Class1();
    
    	Class2 *pClass2;
    
    	private:
    } *pClass1 = NULL;
    
    Class1::Class1()
    {
    	pClass2 = new Class2();
    }
    
    Class1::~Class1()
    {
    }
    

    .\A\B\class2.h:

    #include "C\\class3.h"
    
    class Class2
    {
    public:
    	Class2();
    	~Class2();
    
    	Class3 *pClass3;
    
    	private:
    };
    
    Class2::Class2()
    {
    	pClass3 = new Class3();
    }
    
    Class2::~Class2()
    {
    }
    

    .\A\B\C\class3.h:

    class Class3
    {
    public:
    	Class3();
    	~Class3();
    
    	void Test();
    
    private:
    };
    
    Class3::Class3()
    {
    }
    
    Class3::~Class3()
    {
    }
    
    void Class3::Test()
    {
    	Beep(2000,1000);
    }
    


  • Aber somit ist jede klasse global!



  • Well?



  • Naja bei 3 klassen ist das kein thema, aber wenn man 90 klassen hat, wo manche sehr ähnlich sind, dann wäre es schon ganz gut wenn es nicht global wäre!

    Ausserdem, was ist denn falsch an meinem source?
    Ist es nicht immer noch ein Fehler der Software das dort die Anzeige nicht funzt?



  • Dein Source ist schon korrekt, aber recht ungewöhnlich. So Klassenverschachtelungen werden normalerweise nie benutzt, weswegen der Bug wohl bisher auch noch nie jemandem aufgefallen ist *G*


Anmelden zum Antworten