Der Visual C++ - Hass - Thread

Schnelle objektorientierte, kompilierende Programmiersprache.
nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: Der Visual C++ - Hass - Thread

Beitrag von nufan » Do Okt 22, 2009 3:22 pm

Xin hat geschrieben:
nufan hat geschrieben:War es das gleiche Projekt? Oder hast Du das Projekt neu angelegt?
Zu 100% gleich. Keinen Code geändert, keine Projekteinstellungen geändert.
Neues Projekt, also evtl. eben doch nicht 100% gleich.
Hättest Du das defekte Projekt mal eingepackt, hätte mich interessiert, die Lösung zu suchen.
Hab mich wohl falsch ausgedrückt: es war kein anderes, sondern genau die selbe Projektdatei mit den selben Codedateien. Alles gleich, nichts neu angelegt.
Xin hat geschrieben:Ich vermute hier dann ehrlich gesagt was anderes.
Ich hatte das Problem mal, da waren zwei gleichnamige Dateien in unterschiedlichen Verzeichnissen im Projekt. Da wurde auch nur eine von kompiliert - hatte ich ja kürzlich beschrieben.
Ich hab das Projekt zuerst mit Code::Blocks unter Ubuntu geschrieben, bis ich hörte, dass ich mit einer Bibliothek einen Punkte in der Windows-Konsole ausgeben soll. Meine Klasse hieß zuerst CPoint (das 'C' wurde mir vorgeschrieben...). Als ich dann unter Visual kompilieren wollte, merkte ich, dass es MFC-Klasse mit Namen CPoint gibt. Also änderte ich auf Anweisung hin den Namen der Klasse auf "CMyPoint", die Dateinamen ließ ich jedoch so. Danach kompilierte alles bis auf den erwähnten Fehler. Ein paar Stunden später gings, also können auch nicht die gleichen Dateinamen schuld gewesen sein. Außerdem verwendete ich überhaupt kein MFC, außer die Bibliothek (ein Wrapper um ein paar Windows-Konsolen-Bibliotheken) verwendet sie.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Der Visual C++ - Hass - Thread

Beitrag von cloidnerux » Do Okt 22, 2009 3:32 pm

Aber auch bei noch so vielen Fehlern, ist wenigstens die Visual Studio GUI eine der Besten die ich kenne.
IntelliSense und eine recht "aufgeräumte" Oberfläche machen arbeiten angenehm einfach.
Solange man nicht zu sehr an Projekteinstellungen "rumpfuscht" geht das mit dem Compilieren auch meistens sehr gut.

Und es ist auch möglich, ein Makefileprojekt in VS anzulegen und ein externes Makefile und damit gcc zu nutzen.
Auch soll es nach Quellen aus dem Internet möglich sein über ein Plug-In gcc direkt in VS zu nutzen.
Redundanz macht wiederholen unnötig.
quod erat expectandum

nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: Der Visual C++ - Hass - Thread

Beitrag von nufan » Do Okt 22, 2009 3:39 pm

cloidnerux hat geschrieben:eine recht "aufgeräumte" Oberfläche machen arbeiten angenehm einfach.
Ich finde es überladen, aber vom Code::Blocks-default-Layout halte ich das gleiche. Deshalb habe ich alle Symbolleisten ausgeblendet und arbeite hauptsächlich mit Shortcuts.
cloidnerux hat geschrieben:Solange man nicht zu sehr an Projekteinstellungen "rumpfuscht" geht das mit dem Compilieren auch meistens sehr gut.
Ehrlich gesagt weiß ich nicht genau was ich da alles eingestellt habe, aber ich habs genau so gemacht wie es in der Dokumentation stand und außerdem ging es einmal nicht und dann plötzlich schon...
cloidnerux hat geschrieben:Und es ist auch möglich, ein Makefileprojekt in VS anzulegen und ein externes Makefile und damit gcc zu nutzen.
Auch soll es nach Quellen aus dem Internet möglich sein über ein Plug-In gcc direkt in VS zu nutzen.
Kann man damit auch vom Visual-Compiler erstellte .obj's linken und Bibliotheken einbinden, die nicht mal die Express Edition von Visual verwenden kann?

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Der Visual C++ - Hass - Thread

Beitrag von Xin » Sa Okt 24, 2009 1:53 pm

Geht nicht...

Code: Alles auswählen

Primitive const & Primitive::String()   { static StringPrimitive const result(); return result; };
Geht...

Code: Alles auswählen

Primitive const & Primitive::String()   { static StringPrimitive const result = StringPrimitive(); return result; };
...Unterschied?


Meldung:

Code: Alles auswählen

c:\users\xin\desktop\genesys\trunk\de\xsd\gsys\type\primitive.cpp(32) : error C2267: 'result': Statische Funktionen mit Blockgültigkeit sind unzulässig
c:\users\xin\desktop\genesys\trunk\de\xsd\gsys\type\primitive.cpp(32) : error C2440: 'return': 'const XSD::Gsys::StringPrimitive (__cdecl *)(void)' kann nicht in 'const XSD::Gsys::Primitive &' konvertiert werden
        Ursache: Konvertierung von 'const XSD::Gsys::StringPrimitive (__cdecl *)(void)' in 'const XSD::Gsys::Primitive' nicht möglich
        Quelltyp konnte von keinem Konstruktor angenommen werden, oder die Überladungsauflösung des Konstruktors ist mehrdeutig
Wieso sieht der da eine Funktion? Es gibt keine Funktion 'result()'. Was ist da mehrdeutig?

Geht...

Code: Alles auswählen

Primitive const & Primitive::String()   { static StringPrimitive const result; return result; };
<schulterzuck>
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Der Visual C++ - Hass - Thread

Beitrag von cloidnerux » Sa Okt 24, 2009 2:14 pm

Code: Alles auswählen

static StringPrimitive const result();
Wieso sind da "()" hinter dem Result, wenn es eine Variable sein soll.

Code: Alles auswählen

 static StringPrimitive const result = StringPrimitive();
Handelt es sich bei "String Primtive" um eine Verweisklasse oder behandelt VS dies als solche?
Redundanz macht wiederholen unnötig.
quod erat expectandum

nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: Der Visual C++ - Hass - Thread

Beitrag von nufan » Sa Jan 16, 2010 6:42 pm

Ich habe heute einem Freund geholfen ein Visual-Programm zu debuggen. Bei einigen Sachen hätte ich mir vielleicht Warnings erwartet, aber das hier sind die Highlights:
* Visual erlaubt es Funktionen in Klassen zu deklarieren, ohne sie zu implementieren.
* Visual erlaubt das Anlegen von Zeigern auf Template-Klassen ohne Typangabe.
* Visual erlaubt this in friend-Funktionen.
Von den ersten beiden war ich überrascht vom letzten eher geschockt...

Benutzeravatar
naums
Beiträge: 740
Registriert: Sa Jan 02, 2010 10:40 pm
Kontaktdaten:

Re: Der Visual C++ - Hass - Thread

Beitrag von naums » Sa Jan 16, 2010 10:56 pm

Also ungeachtet alle dem was vorneweg steht, ich benutze Code::Blocks und bin damit zufrieden. den MinGW32 bzw. GCC installiere ich dabei immer selbst, auch unter Windows. 8-)
Der GCC bringt nicht solche sinnlosen Fehlermeldungen. Aber ich finde trotzdem seltsam, dass C++ string Variablen nicht direkt ohne einen char Befehl in char umwandeln kann, bzw. andersrum... -.-
.globl truth
truth:
mov r0, #42
mov pc, lr

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: Der Visual C++ - Hass - Thread

Beitrag von Dirty Oerti » Sa Jan 16, 2010 11:06 pm

naums hat geschrieben:Also ungeachtet alle dem was vorneweg steht, ich benutze Code::Blocks und bin damit zufrieden. den MinGW32 bzw. GCC installiere ich dabei immer selbst, auch unter Windows. 8-)
Der GCC bringt nicht solche sinnlosen Fehlermeldungen. Aber ich finde trotzdem seltsam, dass C++ string Variablen nicht direkt ohne einen char Befehl in char umwandeln kann, bzw. andersrum... -.-
...

Code: Alles auswählen

string test = "abcdef"; // char-String zu C++-String
cout << test.c_str(); // C++-String zu char-(C)-String
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

Benutzeravatar
naums
Beiträge: 740
Registriert: Sa Jan 02, 2010 10:40 pm
Kontaktdaten:

Re: Der Visual C++ - Hass - Thread

Beitrag von naums » Sa Jan 16, 2010 11:19 pm

man könnte doch aber auch test gleich direkt ausgeben...
.globl truth
truth:
mov r0, #42
mov pc, lr

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Der Visual C++ - Hass - Thread

Beitrag von cloidnerux » Sa Jan 16, 2010 11:21 pm

Trotz der großen abneigung finde ich VS klasse.
Visual Studio hat bisher noch die beste IntelliSense(Code-Erweiterung) die ich gesehen habe, ist für meine Zwecke einfach zu bedienen und unterstütz viele testmöglichkeiten. Wann immer eins meiner Programme Crasht, zeigt VS mir an wo und warum es Crasht. Funktionen wie Code-Rework und XML-Codebeschriebung sind sehr nützlich. Sletsame fehlermeldungen erhalte ich selten, was warscheinlich daran liegt, das ich die windows.h nicht nutze.
Da ich viel C# Programmiere, ist Visual Studio noch nützlicher, da es dafür Optimiert wurde.
Auch die große Nutzung bei Professionellen Entwicklern und Softwarehäusern spricht für sich.
Natürlich sagt jeder kleinere Hobby-Entwickler und Microsoft-hasser, Visual Studio taugt nichts, auch sagen diese Menschen das selbe über Word(etc.), Windows und sowieso jeder MS entwicklung. Am liebetsn würden sie alles mit Open Source Software machen und jeden anderen dazu zu überreden es ihm gleich zu tun. Doch dies würde dazu führen, das KEIN Programmiere mehr irgendwo eine anstellung finden würde, weil alles und jeder kostenlose Software nutzen will.
Wer etwas nicht Nutzen will, wird irgendwo einen Fehler oder Unannehmlichkeit finden, die gegen die Nutzung spricht.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Antworten