Aplikacje okienkowe C++ - które IDE?

0

Witam.
Na stronie MS jest dostępna darmowa wersja Visual Studio C++ Express 2012 (a dokładnie wersję Express for Windows Desktop). Pobrałem ją dzisiaj i troszkę zagubiłem się po mega-długiej instalacji.
Miałem przez chwilkę dostęp do Visual Studio C# Express 2010. Były tam dostępne listy Komponentów, Eventów, mogłem normalnie stworzyć projekt aplikacji okienkowej, powrzucać jakieś labele, przyciski i wszystko działało. Jeśli chodzi o VS C++ E 2012 to nie za bardzo wiem jak to ugryźć. W Toolbarze nie ma żadnych komponentów, nie widzę eventów do wykorzystania, projekt tworzony ma automatycznie jakieś podstawowe menu i nie bardzo wiadomo nawet jak je podglądnąć bez kompilacji i odpalenia programu. Nigdy wcześniej nie miałem styczności z takim kombajnem. Trzeba najpierw to jakoś skonfigurować? A może jest gdzieś jakiś dobry opis dla osób początkujących? W Internecie jest bardzo dużo tutoriali do wersji 2010, natomiast ciężko znaleźć coś dobrego do 2012.
Byłbym wdzięczny za wszelkie porady w tej sprawie.
Proszę o nie mieszanie mnie z błotem od razu :) Tak jak napisałem, pierwszy raz mam styczność z takim wielkim kombajnem (100 lat temu korzystałem trochę z Delphi i Buildera C++ ale nie przypominam sobie abym miał takie problemu przy samym starcie).
Pozdrawiam.

1

Na stronie MS jest dostępna darmowa wersja Visual Studio C++ Express 2012 (a dokładnie wersję Express for Windows Desktop)

Bez C++ w nazwie. Wersja ta zawiera C++, C# i Visual Basic.

Miałem przez chwilkę dostęp do Visual Studio C# Express 2010.
Zdecyduj się, jaki chcesz język. C++ czy C#?
Oczywiście twoje znajome komponenty będą, jeśli wybierzesz projekt w C#.

Pod C++ w zasadzie nie ma gotowej biblioteki do GUI, przynajmniej w wersji Express.
Można co prawda użyć czegoś co się nazywa C++/CLI, dialekt C++ w którym ma się dostęp do .NET Frameworka.
Pisanie w tym aplikacji okienkowej jest jednak z nie do końca zrozumiałych dla mnie powodów niezalecane.
Na dodatek w wersji 2012 zostało utrudnione do tego stopnia, że większość myśli, że jest już niemożliwe.
Tak naprawdę 2012 obsługuje Windows Forms dla C++/CLI, brakuje tylko opcji do tworzenia nowego projektu ;-)

Ale jeśli chcesz się uprzeć, to:

• utworzyć projekt typu CLR Console Application, z domyślnymi ustawieniami,
PROJECT | Add New Item, UI, Windows Form
PROJECT | Properties (na samym dole), kliknąć po lewej na Configuration Properties
• u góry ustawić Configuration: All Configurations
• po lewej rozwinąć Linker | Advanced, i w polu Entry Point wpisać main
• w zakładce Linker | System zmienić Subsystem na WINDOWS
• plik z funkcją main() zastąpić taką treścią (w miarę potrzeby poprawić nazwę formy i namespace'a):

#include "stdafx.h"
#include "MyForm.h"
using namespace ConsoleApplication5;

[STAThread]
int main(array<System::String ^> ^args)
{
	Application::EnableVisualStyles();
	Application::SetCompatibleTextRenderingDefault(false);
	Application::Run(gcnew MyForm());
	return 0;
}

Ale serio, lepiej po prostu napisać w C#.

W Internecie jest bardzo dużo tutoriali do wersji 2010, natomiast ciężko znaleźć coś dobrego do 2012.
Główna różnica to to, że wersja 2012 jest brzydka. Mimo to, tutoriale w 99% powinny działać.

0

Aktualnie zgłębiam tajniki C/C++ i dlatego myślałem, że i w tym języku będzie wszystko tak samo. Na VS 2010 do C# trafiłem przypadkiem i miałem okazję poklikać parę minut. Całkiem mi się to spodobało.

Pisanie w tym aplikacji okienkowej jest jednak z nie do końca zrozumiałych dla mnie powodów niezalecane. Na dodatek w wersji 2012 zostało utrudnione do tego stopnia, że większość myśli, że jest już niemożliwe.

Czyli według Ciebie da się to ominąć i zrobić ręcznie i osobiście nie widzisz przeciwwskazań do takiej praktyki?

Ale serio, lepiej po prostu napisać w C#.

Dlaczego lepiej? Tak teraz czytam o różnicach między C++ i C# i nie jest tak strasznie chyba. Są jakieś konkretne ku temu powody?

W Internecie jest bardzo dużo tutoriali do wersji 2010, natomiast ciężko znaleźć coś dobrego do 2012.Główna różnica to to, że wersja 2012 jest brzydka. Mimo to, tutoriale w 99% powinny działać.

Fakt, mi osobiście z wyglądu też bardziej podoba się 2010. 2012 jest zbyt efekciarska jak na program, który ma być prosty i funkcjonalny. Czy oprócz brzydoty i utrudnień są jeszcze jakieś większe zmiany? Może lepiej pracować na sprawdzonym 2010? O ile tam nie ma takich trudności z C++.

1

C++ i C# to są dwa kompletnie różne języki i jest więcej różnic niż podobieństw między nimi. Jeżeli korzystałeś wcześniej z VS 2010 Express to nie miałeś dostępu do klikania GUI w C++. Taka możliwość jest w C++\CLI, ale skoro nie znasz .Net i C#, a do tego pewnie nie najlepiej C++ to może być ciężko.

Dlaczego w C# jest lepiej? Bo jest dużo wygodniej i prościej niż w C++\CLI. Przy C++\CLI łączenie kodu natywnego z zarządzanym nie jest takie trywialne.

1

Czyli według Ciebie da się to ominąć i zrobić ręcznie i osobiście nie widzisz przeciwwskazań do takiej praktyki?
Opisane kroki to dokłanie to co robiły poprzednie wersje automatycznie. Przeciwwskazań brak, przynajmniej jeśli chodzi o wersję 2012. O przyszłych nie będę się wypowiadał.

Może lepiej pracować na sprawdzonym 2010? O ile tam nie ma takich trudności z C++.
Są większe, bo w VS2010 nie działa podpowiadanie składni w C++/CLI.
Działa natomiast w VS2005 i 2008, i nie ma cyrków z tworzeniem nowego projektu, ale tych Expressów nie ma już do ściągnięcia za darmo ze strony Microsoftu.
Ostatnie zdanie to tzw. suspiciously specific denial ;-)

Dlaczego lepiej? Tak teraz czytam o różnicach między C++ i C# i nie jest tak strasznie chyba. Są jakieś konkretne ku temu powody?
Dlatego, że aby napisać program GUI w C++/CLI, to trzeba znać zarówno standardowe C++ jak i C#. A wtedy pojawia się pytanie, dlaczego po prostu nie zostać przy C# ;-)

Visual Studio po prostu nie bardzo nadaje się do łatwego pisania programów GUI w języku C++.
Dostępne masz WinAPI, które jest trudne (to jest właśnie to, co opisujesz jako „projekt tworzony ma automatycznie jakieś podstawowe menu”).
Do WinAPI jest rozwlekły opis w Helpie (naprawdę warto go zainstalować i chociaż przejrzeć spis treści!) i na msdn.microsoft.com.
Jest też trochę bardziej graficzne MFC, które jest tylko trochę mniej tragiczne od WinAPI, ale nie ma go w edycji Express :-(

Są różne zewnętrzne biblioteki jak WxWidgets, Gtk+, Qt – ale samo ich zainstalowanie wymaga osobnych tutoriali...

0

Rozumiem. Faktycznie wygląda na to, że nie ma sensu się bawić w Visual Studio programując w C/C++. Może kiedyś przyjdzie czas, że przysiądę się do C#, ale na razie wolałbym zostać przy C/C++.
Polecacie może coś podobnego do C/C++? Kiedyś troszkę bawiłem się w Builderze, ale to było dawno temu. Maja teraz coś takiego darmowego jak VS Express? A może jakaś inna ciekawa opcja do aplikacji okienkowych? Oczywiście mam na myśli coś gdzie nie będzie trzeba ślęczeć godzinami i pisać okienek z palca jak w WinAPI (z tego co się doczytałem). Mam napisaną aplikację konsolowa i chciałbym ją przerobić na tryb okienkowy aby była łatwiejsza w użytkowaniu, stąd moje całe zainteresowanie tym tematem :) A nie mówię, ze na pewno fajnie by było nauczyć się tworzyć takie aplikacje. Teraz już raczej mało kto korzysta z aplikacji konsolowych.

2

Code Blocks + biblioteki wxwidget - piszesz w "czystym" c++, okienka wyklikujesz w edytorze wbudowanym w CB
Qt Creator + biblioteki Qt - piszesz w odrobinę wzbogaconym c++ o sygnały i sloty, okienka wyklikujesz w edytorze.

Co mogę o tym powiedzieć więcej? wxwidget jest ubogie w sumie ogranicza się tylko do komponentów okien ale za to szybkością ustępuje tylko winapi. Qt natomiast to wielkie framework który posiada klasy niemal do każdego zadania, tak, że praktycznie nie korzysta się z biblioteki standardowej, posiada ogromne możliwości stylizacji okien, ma tez dużo lepszą dokumentacje i społeczność niż wxwidget aczkolwiek trzeba się przyzwyczaić do stylu jej napisania. Jest odrobinę wolniejsza niż wx.

Nie musisz rezygnować z c++ żeby prosto robić okienka ;)

0

@mr_jaro, możesz napisać coś więcej o tym?:

Code Blocks + biblioteki wxwidget...
Qt Creator + biblioteki Qt...

Co oznaczają tylko komponenty okienkowe? Wydaje mi się, że prostszy sposób to doinstalowanie biblioteki wxwidget, bo nie trzeba się uczyć nic poza C++. Ale czy to wystarczy do swobodnego tworzenia aplikacji? Nie do końca wiem jakie jeszcze mogą być komponenty oprócz okienkowych, więc ciężko mi wyobrazić czy to by mi wystarczyło :) Które rozwiązanie sam wykorzystujesz / polecasz najbardziej?

2

Chodziło mi o to, że biblioteka wx to praktycznie same komponenty okienkowe czyli np przycisk a nie posiada wielu klas do innych zastosowań. W Qt natomiast jest prawie wszystko czyli oprócz wszystkiego co związane z wyglądem, oknami są też inne klasy np klasa do obsługi wszelkiego typu ustawień, od obsługi rejestru windowsowego przez pliki ini po jakiś ich specyficzny format, klasy do obsługi sieci czy też np silnik webkita (silnik używany do parsowania stron www przez np chrome) i wiele wiele innych klas, nie potrzebujesz korzystać z żadnej klasy z biblioteki standardowej, wszystko jest w prostszy sposób ujęte w ich własnych klasach.

Do swobodnego tworzenia aplikacji w wx potrzebujesz CB + wx + dokumentacja (http://www.wxwidgets.org/docs/) wx która niestety nie jest najlepsza według mnie.

Co ja proponuje? Na początek spróbuj z tym wx, jest prostsze na początek niż qt. Nie wiem czy znasz taki manager plików filezilla, został on napisany właśnie za pomocą wx. Jeżeli natomiast pragniesz tworzyć oszałamiające wyglądem okna to qt, wx niestety nie nada się do niczego lepszego niż standardowe systemowe kontrolki. w qt te możliwości przeogromne, gdyż wygląd stylizujesz lekko zmodyfikowanym css`em.

0

Okey, tak tez zrobię. Już pobrałem wxWidgets i właśnie zastanawiam się jak to zainstalować :) Posiedzę trochę w nim, a później sprawdzę QtC i porównam jak to działa.

Tylko mam pytanie odnośnie tej instalacji. Czy jest jakiś prostszy sposób zainstalowania tego tworu niż opisany na ich wiki? http://wiki.codeblocks.org/index.php?title=WxWindowsQuickRef ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1