Statisches objekt erstellen



  • #include <string>
    
    std::string g_global;
    
    void test()
    {
      static std::string s_static;
    }
    


  • danke!!!! bekomme aber leider noch immer folgende fehlermeldungen:
    Fehler 1 error C3145: "urlrk": Eine globale oder statische Variable darf nicht den verwalteten Typ "System::String ^" aufweisen. c:\users\philipp\documents\visual studio 2005\projects\media player\media player\Form1.h 36
    Fehler 2 error C2352: 'AxWMPLib::AxWindowsMediaPlayer::URL::set': Unzulässiger Aufruf einer nicht statischen Memberfunktion c:\users\philipp\documents\visual studio 2005\projects\media player\media player\Form1.h 219

    Code:

    #pragma once
    #include <string>
    #include <vcclr.h>
    
    namespace MediaPlayer {
    
    	using namespace System;
    	using namespace System::ComponentModel;
    	using namespace System::Collections;
    	using namespace System::Windows::Forms;
    	using namespace System::Data;
    	using namespace System::Drawing;
    
    	/// <summary>
    	/// Zusammenfassung für Form1
    	///
    	/// Warnung: Wenn Sie den Namen dieser Klasse ändern, müssen Sie auch
    	///          die Ressourcendateiname-Eigenschaft für das Tool zur Kompilierung verwalteter Ressourcen ändern,
    	///          das allen RESX-Dateien zugewiesen ist, von denen diese Klasse abhängt.
    	///          Anderenfalls können die Designer nicht korrekt mit den lokalisierten Ressourcen
    	///          arbeiten, die diesem Formular zugewiesen sind.
    	/// </summary>
    
    	public ref class Form1 : public System::Windows::Forms::Form
    	{
    		static System::String ^urlrk = "mms://gcssrv.pkf.speednet.at/WSX/oe2ktn";		 
    		static System::String ^urlfm4 = "mms://stream1.orf.at/fm4_live";			
    		//static System::String ^urlrk = "mms://gcssrv.pkf.speednet.at/WSX/oe2ktn";
    
    	public:
    		Form1(void)
    		{
    			//const char urloe[] = "mms://stream4.orf.at/oe1-wort";
    			static System::String ^urlrk;
    			InitializeComponent();
    			//
    			//TODO: Konstruktorcode hier hinzufügen.
    			//
    		}
    
    	protected:
    		/// <summary>
    		/// Verwendete Ressourcen bereinigen.
    		/// </summary>
    		~Form1()
    		{
    			if (components)
    			{
    				delete components;
    			}
    		}
    
    ...
    ...
    			 }
    private: System::Void fM4ToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
    			 urlrk = "mms://gcssrv.pkf.speednet.at/WSX/oe2ktn";
    			//System::String ^str = "mms://gcssrv.pkf.speednet.at/WSX/oe2ktn";
    			AxWMPLib::AxWindowsMediaPlayer::URL::set(urlrk);
    			// AxWMPLib::AxWindowsMediaPlayer::launchURL("mms);mms://gcssrv.pkf.speednet.at/WSX/oe2ktn";
    		 }
    
    };
    }
    


  • Du machst weder MFC noch C++! Du machst C++/CLI und da geht es so:

    public ref class Statics
    {
      public static System::String ^global;
    };
    

    Und der Zugriff dann mittels:

    Statics::global
    


  • wenn ich das einfüge bekomm ich 70!!! Fehler. Wo genau muss ich das einfügen?



  • Wo hast Du Was eingefügt!?
    Das ganze war ja nur ein Beispiel...



    1. vor public ref class...
    2. in public ref class...
    3. nach form1(void)...


  • 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.



  • habs immer noch net geschafft!
    Wenn ich public davor setzte kommt ein fehler mit :
    und er spukt noch immer den fehler: "Aufruf einer nicht statischen Memberfunktion" aus!



  • Zeig mal den Code den Du eingesetzt hast



  • Komisch hab gerade mit meinen Lehrer geredet.
    Statt:
    AxWMPLib::AxWindowsMediaPlayer::URL::set(xx);
    gehört this->AxWindowsMediaPlayer::URL = "xx";
    naja trotzdem danke



  • Bei this-> greifst Du auf eine Variable der aktuellen Instanz zu die dort AxWindowsMediaPlayer heisst.

    Ohne das Du mal den Quellcode zeigst um den es geht, kann man Dir keine richtige Auskunft geben bzw. erläutern warum this->



  • Quellcode war auf der ersten Seite! Aber lass ma das. Ich habs ja eh geschafft.


Anmelden zum Antworten