ExpeditionTool::Form2::Show(); error C2352



  • Also wird das nicht von der IDE übernommen? sowie bei Borland.



  • Die Lücken in den Grundlagen sind bei Borland genau die gleichen wie beim VS Compiler



  • Warum hab ich z.B. bei MS eine int main und bei Borland nicht?
    Warum steht bei MS der Quelltext in der header der eigentlich in die cpp gehört?
    das hat doch nix mehr mit grunlagen zu tun wenn die Kommlett anders arbeiten.



  • Du bist hier in C++/CLI nicht C++.



  • OK versuchen wir es mal so.
    Componenten:
    Form1, Button1.

    Funktion:
    Buttonklick = Beendet das Programm.

    Kann mir jetzt einer der MS Visual Studio 2005 benutzt die header und die cpp Datei zeigen, dann erklär ich mir selbst was ich falsch mache und kann auf sinnlose kommentare verzichten.

    Es würde mir auch schon reichen wenn ihr vielleicht irgend ein tut kennt, hab leider keins gefunden.

    Edit: Kein tut über c++ sondern eins über die IDE

    Danke



  • Die von Dir gestellten Probleme haben nichts mit der IDE zu tun sondern mit mangelnden Grundkenntnissen.

    <Namespace>::Form2::Show(); hat nichts mit der IDE zu tun sondern einfach nur mit dem fehlenden Verstndäniss für Instanzen.

    Ich persönlich habe mehr das Gefühl, das es für C++ sehr wenig Tutorials oder Bücher gibt, die exakt auf die IDE eingehen, entgegen VB z.B. wo jeder Schritt über die IDE erklärt ist.

    Das Buch hier könnte das sein was Du suchst:
    Pro Managed C++ and .NET 2.0 Development | ISBN: 159059469X

    Jedoch wirst Du für dieses Buch Grundlagen benötigen. Ein paar Dinge stehen falsch drinn, was imho einfach Flüchtigkeitsfehler sind. Diese dinge fallen mit den Grundlagen auch deutlich auf.

    Ebenso wird jedes Tutorial Grundlagenwissen benötigen - Templates werden da z.B. mit 2 Seiten abgehandelt, das Thema braucht aber viel viel mehr Platz.

    (Das Buch ist IMHO sehr schön wenn man von C++ auf C++/CLI umsteigt).

    Wenn Dir die wertvollsten Tipps: "Lern Grundlagen" zu blöd sind, wirst Du immer wieder hier anecken.

    In C++ wird es immer Sachen geben die man Fragt die für andere total einfach sind und die man selbst nur schwer versteht weil einem die Übersicht fehlt oder die Suchbegriffe. Ein <Namespace>::Form2::Show(); jedoch der IDE zu zuschieben schreit mehr nach ein paar Grundlagen lesen.

    Dein Header und Cpp Problem bekommst Du gelöst, wenn Du in den Grundlagen mach nach Deklaration und Definition suchst.

    Eventuell hilft es aber auch mal die Art und weise wie Du hier um hilfe bittest zu ändern, so erhälst Du weiterhin Querverweise auf die Grundlagen.



  • Ja, ich lerne jetzt Grundlagen da ich scheinbar wirklich nix weiß.
    Danke für den Buchtipp.



  • Hier noch eine Hand voll Links , die dabei helfen:

    http://www.c-plusplus.net/forum/viewforum-var-f-is-15.html
    Hier immer mal die Beiträge anderer lesen, ich lerne hier auch noch dazu oder merke, das ich oft Fragen nicht beantworten kann weil ich gewisse Themen lange nicht gemacht habe

    http://www.c-plusplus.net/forum/viewforum-var-f-is-25.html
    Die FAQ Sammlung des C++ Forums, hier finden sich auch ein paar gute Informationen.

    Und noch kurz zur .h und .cpp im VS:

    Ich tippe darauf, das es für MS einfacher war, den Designer nur auf dem Header rumtanzen zu lassen als das in .h und .cpp aufzuteilen. Mich nervt es auch, man trennt das dann mit der Hand auf.

    So wird beim Klickevent im Header das hier angelegt:

    DebitorDetail.h:

    System::Void toolStripButton1_Click(System::Object^  sender, System::EventArgs^  e)
    	{
    	}
    

    Daraus kann man dann mit der Hand machen:

    DebitorDetail.h:

    System::Void toolStripButton1_Click(System::Object^  sender, System::EventArgs^  e);
    

    DebitorDetail.cpp

    /************************************************************************/
    	/*                                                                     
    	/************************************************************************/
    	System::Void DebitorDetail::toolStripButton1_Click(System::Object^  sender, System::EventArgs^  e)
    	{
    		hsp_WindowManager::Instance().debitor_detail.display_filter("");
    	}
    

    Du wirst dies beim Thema Deklaration und Definition wiederfinden 🤡



  • Das war jetzt genau das was mir den richtigen schups gegeben hat.

    Edit: Ich hab dummerweise angenommen das ich das event das die IDE erzeugt,
    so wie es ist in der header stehen lassen muß. Dumm Dumm Dumm

    Danke



  • Es hat sogar nachteile wenn Du das stehen lässt,
    denn alles was sich im Header ändert muss überall
    da aktualisiert werden, wo der Header verwendet wird.

    Wenn die Projekte größer werden, wird das richtig zum
    Ärgernis, weil einfach unnötig viel compiliert wird.

    Ebenso *musst* Du die Definition und Deklaration trennen
    wenn z.B. Form1 Form2 braucht UND umgekehrt.

    Es ist zwar mühsig das mit der Hand zu trennen, aber wenn
    Du Dir das angewöhnst belohnst Du Dich dadurch, das Du
    einfach ein paar Fehler nicht haben wirst und ein paar
    Fehler die dadurch kommen werden einfach das Verständnis
    fördern 🤡

    Wir alle warten auf eine Verbesserung des Formdesigners
    (wart bet hoff), aber solange muss man halt mit leben



  • Hättest du vielleicht noch die ISBN Nr. von dem Buch?



  • Also gerade hier auf der Seite (oben der Link Bücher) gibt es einige Bücher über C++, dann wäre da noch http://www.galileocomputing.de/katalog/openbook/ zu erwähnen. Die haben einige Bücher über .net mit c# (ja, ist nicht C++, aber es gibt soviel Beispiele, etc. im Netz in c# und kann man c und C++, dann kann man die auch verstehen - ist nicht unwichtig).

    Ansonsten ist die MSDN (online und auch die lokale Hilfe) wirkich sehr ausführlich. Die Unterschiede werden durchaus ausführlich beschrieben, auch wenn das anfänglich alles spanische Dörfer sind (die managed classes eben).

    Ich persönlich finde schon, dass man C++ und .net gleichzeitig lernen kann, wenn man zumindest im Kopf beides trennt und eben auch weiss, was woher kommt.

    Aber... der Weg ist weiter... nur einfach nicht entmutigen lassen 😉 Am Ende hat man viel davon und Wissen über c# bekommt man auch noch irgendwie gratis dazu 😉



  • Sascha_Thiel schrieb:

    Hättest du vielleicht noch die ISBN Nr. von dem Buch?

    Einfach mal auf das Bild klicken 🤡



  • Um die Unterschiede zu verstehen, muss man erst mal wissen zu was es denn unterschiedlich ist, also wird man wohl erst mal die basis lernen müssen. Von nix is nix unterschiedlich 😉



  • Ja klar 🙂 Vielleicht ging das bei mir auch nur glücklich 🙂 Ich habe, von c kommend, einfach mehrere Bücher über C++ gelesen, dann ein bisschen mit Klassen herum probiert (also nur die Erstellung, Aufteilung auf die Header, die ganzen Konstrukte von Elementinitialisierungslisten, Überladung, Operatoren, virtuelle Methoden, Vererbung, Templates, etc.) - dann hatte ich das soweit drin.

    Und dann bekam ich ja auch sehr schnell die Fehlermeldungen vom VC++ Compiler, wenn dieser nicht mit meiner Art, die ref classes zu verwenden, einverstanden war *g*

    So kam ich dann auf die Unterschiede und habe mich da durch die MSDN gekämpft.

    EDIT: Und ich muss sagen, dass ich auch immer noch leichte Probleme mit der Strukturierung habe, gerade weil ja ein

    extern ref class blub bla;
    

    hier so nicht funktioniert. Es ist schon einiges anders durch die managed classes, das stimmt schon.


Anmelden zum Antworten