System::String^ zu std::string



  • Musss ich dazu

    using namespace System::Int32::Parse
    

    verwenden und kann dann daraus

    int i = Parse (Textbox1->Text);
    

    machen?
    Wenn ich das versuche bekomme ich leider die nächsten Fehlermeldungen, "'System' is not a Namespace Name" und "'Parse': identifier not found"...Oder habe ich das komplett falsch verstanden?



  • Nein. Entweder ohne using namespace so:

    int i = System::Int32::Parse(Textbox1->Text);
    

    oder mit:

    using namespace System;
    
    // dann... 
    int i = Int32::Parse(Textbox1->Text);
    


  • Ich bekomme sobald ich

    using Namespace System;
    

    verwende den Fehler "name must be a Namespace name" oder wenn ich die erste Möglichkeit verwende "name followed by "::" must be a class or a Namespace name"-woran kann das liegen?

    Nochmal vielen Dank für die Hilfe!



  • namespace muss klein geschrieben sein.



  • Tut mir Leid, ich habe "namespace" in Visual Studio natürlich klein geschrieben und nur hier durch die Autokorrektur den Fehler gemacht, und trotzdem den Fehler in Visual Studio bekommen. Was mache ich da falsch?



  • Da musst du schon ein wenig mehr Code zeigen. Ich gehe davon aus, dass in der Ausgabe vom Compiler die entsprechende Zeile angegeben wird, wo der Fehler liegt.



  • Gerne!

    //
    // MainPage.xaml.cpp
    // Implementation of the MainPage class.
    //
    
    #include "pch.h"
    #include "MainPage.xaml.h"
    
    using namespace Taschenrechner;
    using namespace std;
    using namespace Platform;
    using namespace Windows::Foundation;
    using namespace Windows::Foundation::Collections;
    using namespace Windows::UI::Xaml;
    using namespace Windows::UI::Xaml::Controls;
    using namespace Windows::UI::Xaml::Controls::Primitives;
    using namespace Windows::UI::Xaml::Data;
    using namespace Windows::UI::Xaml::Input;
    using namespace Windows::UI::Xaml::Media;
    using namespace Windows::UI::Xaml::Navigation;
    using namespace System;
    
    // The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409
    
    MainPage::MainPage()
    {
    	InitializeComponent();
    
    }
    
    int a = 1;
    int b = 1;
    
    void Taschenrechner::MainPage::ClickGleich(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
    {
    	int b = Int32::Parse(Eingabezeile->Text);
    }
    

    Ich bekomme leider keinen genauen Fehler Code, aber einen Verweis auf die Zeile mit

    using namespace System;
    


  • Mal so ins blaue geraten: Du hast keinen C++/CLI Code, sondern C++/CX - das ist, so würde ich das umschreiben, ein C++-ähnliches Sprachkonstrukt für den vereinfachten Umgang mit COM; Heraus kommt dann aber schlussendlich nativer Code, nicht managed Code (=.NET).

    Ich gehe davon aus, dass du irgendein WRT/Windows Store App Projekt erzeugt hast.. oder?



  • Ich habe mit Visual Studio 2015 eine leere Visual C++ Projektdatei erzeugt, und dort dann wie in den Anleitungen der Visual Studio Seiten in MainPage.xaml.cpp den eigentlichen Code geschrieben nachdem ich in MainPage.xaml die eigentliche Benutzeroberfläche erstellt hab, mehr weiß ich leider nicht...



  • Ja. Schlecht. Ich weiss, es ist verlockend, mit VS und dem Windows Store App bzw. WRT Zeugs ein UI zu machen, aber ich rate dir dringend davon ab. Gerade als Anfänger ist C++/CX mit dem WRT Zeugs nicht geeignet - auch später nicht, aber dann erkennst du es vielleicht selbst.

    Falls UI wichtig ist, nimm C# mit WPF - oder dann halt C++ mit einem geeigneten Toolkit wie Gtk, wxWidgets etc. VS kannst du bei beiden Varianten sowohl als Compiler als auch als Code-Editor verwenden.



  • Ok dann werde ich es mal mit C# probieren, mal schauen...Danke auf jeden Fall!


Anmelden zum Antworten