arrays & strings in Klassen



  • möp,da tuts doch noch was nich. Irgendwie kann ich vom Programmaus nich auf die Klasse zugreifen.

    Das Programm steht in der Funktion für Form1 bzw. den einzelnen Buttons. Aus den Buttons wird die Klasse password die wie oben zu sehn in der der password.h / password.cpp liegt aufgerufen.
    In allen notwendigen Dateien steht dazu #include "password.h" und die Klasse wird auch im Projektmappen Explorer als solche anzegeigt. Gibt es noch was was da zu beachten ist?

    MFG
    raiden



  • Zeige mal den Code, den der die Klasse password benutzt.
    Generell empfiehlt sich meiner Meinung nach, managed und unmanaged Code nicht zu mischen, es sei denn es geht ums integrieren.

    Simon



  • managed code? unmanaged code?

    Ich kann das alles mit Klassen und Vererbung in Konsolenanwendungen, aber in Windowsprogrammen bin ich noch nich so fit, zumindest kenn ich noch nich die ganzen Begiffe.

    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) 
    			 {
    					int random_ziffer (int, int);
    					int random_zeichen (int, int);
    					int random_sonderzeichen (int,int);
    
    					int ziffer, buchstabe, zeichen;
    
    					ziffer = random_ziffer(0,9);
    					buchstabe = random_zeichen(0,26);
    					zeichen = random_sonderzeichen(0,12);
    
    					set_ziffer1 (ziffer);
    					set_ziffer2 (ziffer);
    					set_ziffer3 (ziffer);
    					set_ziffer4 (ziffer);
    
    					set_buchstabe1 (buchstabe);
    					set_buchstabe2 (buchstabe);
    
    					set_zeichen1 (zeichen);
    					set_zeichen2 (zeichen);	
                             }
    

    Kurz erklärung:
    Zuerst werden 3 Funktionensprototypen angelegt um ne Randomfunktion "aus zu lagern".
    Danach sollen die Variablen ziffer, buchstabe und sonderzeichen mit ner Zufallszahl in den entsprechenden Grenzen gefüttert werden.
    Und zum Schluss sollen halt die Funktionen im public Bereich der Klasse aufgerufen werden.

    Und das funzt jetzt nich. Es kommt die Meldung: "Bezeichner nicht gefunden". Durchs includen sollte das aber überall Bekannt sein im Programm.

    Ich meine für dieses Programm ist es nicht mehr so wichtig. Aber ich habe schon was neues Angefangen wo ich mit Sicherheit wieder vor dem selben Problem stehen werde. Was mich persöhnlich ärgert ist, das ich mich durch ebooks und die MSDN Hilfe gewühlt habe wie ein blöder und es trotzdem nich klappt.

    Wenn man die Klasse mit dem Assistenten einrichtet im Projekt, auf was muss man da achten damit die Klasse nachher überall bekannt ist?

    MFG
    raiden



  • Dem Herrn OP ist doch - so vermute ich und behaupte ich einfach mal - nichtmal bekannt dass er da mit C++/CLI arbeitet, bzw. was C++/CLI überhaupt ist.

    EDIT: falls er es doch weiss so gebührt ihm gleich mal eine auf den Zutz, weil er ins falsche Forum gepostet hat /EDIT

    @Herr OP:
    Als Anfänger solltest du C# oder C++ verwenden, aber nicht gerade C++/CLI. C++/CLI ist die schwierigste, komplexeste und für Anfänger unnötigste (und ungeeignetste) aller Sprachen die Visual Studio anbietet.



  • Dieser Thread wurde von Moderator/in estartu aus dem Forum MFC (Visual C++) in das Forum C++/CLI mit .NET verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Ich werde bestimmt nich auf C# umsteigen. Für C++ kenn ich die ganzen grundlagen, da schau ich mir bestimmt nich noch was anderes an.

    Ok, den Unterschied Cli/ MFC kenn ich wirklich nich. Ich hab im Projektassistenten unter VisualC++ auf "Windows Forms Anwendung" ausgewählt und das sit dabei rausgekommen. Und bis auf das Problem was ich habe, ist es auch genau daswas ich ahben wollte.

    Aber egal, was des nu is, des soll ja nu mal laufen bzw in meinem neuen Projekt! Kann mir dabei irgendwer helfen und sagen was da evtl. nich stimmt?

    MFG
    raiden



  • Wenn Du unbedingt C++/CLI programmieren willst, dann mach das auch und verwende nur managed Klassen für deine Forms-Applikation, also

    ref class xxx
    {
    };
    

    #include <stdio.h>
    #include <string>
    #include <iostream>
    using namespace std;

    Das ist kein C++/Cli, sonden C++. Verwenden die Klassen von .Net wie z.B

    System::Console::WriteLine("Test");
    System::String ^sTestString = gcnew String("Test");
    

    string speicher[100][30];
    string restore[100][30];

    Das sind keine C++/CLI Arrays. Verwende

    cli::array<System::String^, 2> ^speicher = gcnew cli::array<System::String ^> (100, 30);
    

    virtual ~password(void);

    Das brauchst Du nicht, weil Du einen Garbage Collector hast.

    Ersetze deinen C++ Code mit C++/CLI und dann wirds nach einer gewissen Zeit auch klappen.



  • HUch, ok, Rolle Rückwärts. Wie starte ich denn ein Porjekt das nur in C++ programmiert wird? Bzw würde es reichen die vorhandnen Klassen an zu passen?
    Dann müßte ich doch eigentlich nur die Zusätze bei den bei den Aufrufen der Buttons etc ändern oder?

    Ansosnten muss ich ncohmal neu anfangen. Da habt ihr schon recht, Cli will ich dann doch net.



  • Bzw würde es reichen die vorhandnen Klassen an zu passen?

    Nö das wäre wohl mehr Aufwand als ein neues Projekt anzufangen.

    Was du willst ist vermutlich ein MFC Projekt, also bei Project-types auf Visual C++, MFC und dann MFC Application.
    Wenn du die Express Version verwendest gibt's keine MFC, in dem Fall ... wird es schwieriger.



  • Wenn Du MFC verwendest, kannst Du keine Forms-Applikation erzeugen. Du mußte dann deine grafische Oberfläche auch mit der MFC zusammen basteln, was meiner Meinung nach mehr Einarbeitung benötigt als Windows Forms. Außerdem ist IMHO die MFC nicht mehr zeitgemäß. Alternativ könntest Du noch Qt oder eine andere GUI-Biblithek verwenden. Aber für was Du dich letztendlich entscheidest, alles wird einen Aufwand bedeuten, bis Du Oberflächen programmieren kannst.


Anmelden zum Antworten