Visual Studio C++

0

Można disasemblować kod c++, , znaczy przerobić c++ na asm, powiedzmy w VS 2010?

0

Tak. Za wygenerowanie listingu podczas kompilacji odpowiada opcja "Assembler Output" w konfiguracji projektu w zakładce "C/C++" -> "Output files". Dodatkowo podczas debugowania możesz obejrzeć listing w oknie wywołanym przez "Debug" -> "Windows" -> "Disassembly".

0

Aha, miałem jeszcze zapytać czy w tym Visual można projektować okna dialogowe
w tym starym formacie... potem to wisi w pliku .rc - takie coś:

DLG_OPEN DIALOG 23, 0, 337, 248
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Otwórz"
FONT 8, "Helv"
BEGIN
	LTEXT "&Nazwa pliku:", 1090, 6, 6, 80, 9
	EDITTEXT 1152, 6, 16, 80, 12, ES_AUTOHSCROLL | ES_OEMCONVERT | WS_BORDER | WS_TABSTOP
	LISTBOX ID_FLIST, 6, 32, 80, 152, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP
	LTEXT "&Katalogi:", -1, 92, 6, 80, 9
	CONTROL "", 1088, "STATIC", SS_NOPREFIX | WS_GROUP, 92, 18, 80, 9
	LISTBOX 1121, 92, 32, 80, 152, LBS_STANDARD | LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_TABSTOP
	LTEXT "&Wyświetl pliki typu:", 1089, 6, 194, 80, 9
	CONTROL "", 1136, "COMBOBOX", CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP, 6, 204, 80, 35
	LTEXT "&Stacje dysków:", 1091, 92, 194, 80, 9
...

podobnie menu:

ID_MENU MENU
BEGIN
	POPUP "&Pliki"
	BEGIN
		MENUITEM "&Nowy", CM_NOWY
		MENUITEM "&Odczytaj...\t Ctrl+F3", CM_ODCZYT
		MENUITEM "Za&pisz\t Ctrl+F2", CM_ZAPIS
		MENUITEM "Zapisz &jako...", CM_ZAPISZNA
		MENUITEM SEPARATOR
		MENUITEM "S&tyl...", CM_KOLORY
		MENUITEM "Obrazk&i...", CM_OBRAZKI
		MENUITEM SEPARATOR
		MENUITEM "P&rojektowanie strony", CM_PODGLAD
		MENUITEM "Drukuj...", CM_DRUKUJ
		MENUITEM "&Ustawienia drukarki...", CM_PRINTSETUP
...
END

Da radę takie rzeczy w tym tworzyć?

0

Tak, jak najbardziej.

0

Da radę takie rzeczy w tym tworzyć?
Hyh. Pytasz czy można napisać taki plik i zapisać do .rc czy o możliwość wyklikania w designerze menu albo dialogu tak, by IDE wygenerowało odpowiedni kod .rc automatycznie?

Na pierwsze pytanie odpowiedź brzmi oczywiście tak, bo to można zrobić nawet w Notatniku.
IDE rozpozna czym jest plik .rc, i automatycznie wkompiluje zasoby do pliku wykonywalnego.

Na drugie pytanie odpowiedź brzmi tak, ale nie w wersji Express.

Przykładowa zrzutka z designera:
Przechwytywanie.jpg
i wygenerowany kod:

IDD_DIALOG1 DIALOGEX 0, 0, 255, 142
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dialog"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
    DEFPUSHBUTTON   "OK",IDOK,198,121,50,14
    PUSHBUTTON      "Cancel",IDCANCEL,198,121,50,14
    PUSHBUTTON      "Button1",IDC_BUTTON1,168,21,50,14
    CONTROL         "",IDC_RICHEDIT21,"RichEdit20W",ES_AUTOHSCROLL | WS_BORDER | WS_TABSTOP,33,63,119,45
END

Ale w darmowej edycji musiałbyś ręcznie pisać .rc, brak jest designera (przynajmniej tak jest w VS2012).

0
Azarien napisał(a):

Da radę takie rzeczy w tym tworzyć?
Hyh. Pytasz czy można napisać taki plik i zapisać do .rc czy o możliwość wyklikania w designerze menu albo dialogu tak, by IDE wygenerowało odpowiedni kod .rc automatycznie?

No, nie wiem jak to tam teraz działa.
Nie myślałem o pisaniu tego w notatniku, bo tych współrzędnych, które tam figurują, raczej nie zamierzam zgadywać.

Kiedyś to się robiło wizualnie: stawiasz, rozciągasz, ustawiasz różne parametry tych kontrolek, itd.
Ale żadnego kodu w c++ to nie generowało - tylko to resource .rc.

Potem odpalało się to w programie bezpośrednio: CreateDialog,
albo pośrednio - z jakiegoś obiektu C++, który przechwytywał potem te komunikaty,
inicjował te kontrolki, i zgarniał na końcu wpisane dane.

Ja darmowych nie kupuję, chodzi mi np. o professional 2010,
ale nie wiem czy warto wpieprzać w ten biznes i dlatego pytam.

Ale jeśli to takie sprytne, to może potrafi takie coś:
mam już gotowy dialog w .rc i niech to stworzy mi z tego klasę w c++, albo przerobi na jakieś tam formy, czy na coś tam (np. klasę MFC...)
Potem ja dorzucam do tego tylko kilka funkcji - inicjalizacja, komunikaty, itp. no i gotowe.

Potrafi to tak?

1

Zatem co tam tworzyli przez te ostatnie 10 lat w tych wszystkich rewelacyjnych Visualach z MS?

Przecież tych Visual Studio wyszło chyba z 5 generacji w tym czasie!

Myślałem że MS dopracowali troszeczkę te narzędzia... przez całą dekadę, no a tu wychodzi że jednak nie za bardzo.

Co tam w ogóle jest - to działa jak te formy VCL z Borlanda?
Przecież to jest dziadostwo - dla każdego detalu: static, buton, edit, listbox, itd. tworzy zmienne.
I po cholerę to komu?

Przecież windows i tak trzyma już te okienka wewnątrz, a do komunikacji są funkcje - komunikaty:
LB_..., EM_..., WM_Notify z common ctrls, itd.

0

Przecież to jest dziadostwo - dla każdego detalu: static, buton, edit, listbox, itd. tworzy zmienne.
Nie rozumiem. Co ci to przeszkadza?

Jest MFC, które nie tworzy osobnej zmiennej na każdą kontrolkę.

2
plolek napisał(a):

Zatem co tam tworzyli przez te ostatnie 10 lat w tych wszystkich rewelacyjnych Visualach z MS?

VS to IDE do tworzenia różnego rodzaju aplikacji w wielu różnych językach, wzbogacone o narzędzia wspomagające tworzenie profesjonalnych aplikacji, a nie zabawka do wyklikiwania kontrolek i pisania w języku, który wygląda i zachowuje się jak jamnik z przybitymi deskami (chociaż to też jest możliwe).

Ja wychodzę z założenia, że lepiej czegoś nie używać niż się z tym męczyć.

1
Azarien napisał(a):

Przecież to jest dziadostwo - dla każdego detalu: static, buton, edit, listbox, itd. tworzy zmienne.
Nie rozumiem. Co ci to przeszkadza?

To znaczy że MS przez te całe 10 lat kopiuje i rozbudowuje coś w stylu VCL Borlanda?!
Kupa śmiecha.
Jaja powycinali programistom w MS? Zero inwencji, pomysłu i polotu...

Azarien napisał(a):

Jest MFC, które nie tworzy osobnej zmiennej na każdą kontrolkę.

Świetnie, ale tak pracowało się już z 15 lat temu... na 486 i win 95.

Nie wiem czy warto zaśmiecać sobie dysk tym... produktem reklamowym.

2

Ktos Ci kaze z tego korzystac, czy jak? Uzywaj sobie innego IDE jak Ci VS nie odpowiada.

Nie rozumiem w ogole Twojego podejscia, narzekanie na forach gowno da. Jak chcesz miec wklad w rozwoj to sie zatrudnij w microsofcie. Jak chcesz im przeslac liste zyczen (ktora pewnie oleja) to im przeslij. Jak Ci sie nie podoba srodowisko to je po prostu zmien. Ja np. nie przepadam za windowsami, to po prostu z nich nie korzystam czesciej niz musze, polecam zrobic to samo, zamiast wypisywac swoje zale na forum, na ktorym (chyba?) nikt nie ma wplywu na cokolwiek zwiazane z tym IDE.

0
somekind napisał(a):
plolek napisał(a):

Zatem co tam tworzyli przez te ostatnie 10 lat w tych wszystkich rewelacyjnych Visualach z MS?

VS to IDE do tworzenia różnego rodzaju aplikacji w wielu różnych językach, wzbogacone o narzędzia wspomagające tworzenie profesjonalnych aplikacji, a nie zabawka do wyklikiwania kontrolek i pisania w języku, który wygląda i zachowuje się jak jamnik z przybitymi deskami (chociaż to też jest możliwe).

Różnego rodzaju, profesjonalne, uniwersalne - do domu, zagrody, szkoły, banku, biura i biznesu - tak?
Tak każdy ma - w reklamach.

Ja też takie rzeczy wypisuję, gdy np. robię prościutki programik do liczenia magazynu a w opisie wszucam:
super prof. system klasy: gospodarka magazynowa, ewidencja obrotu towarami, surowcami, nakładami, wyrobami,
automatyczne obliczenia stanów, kosztów nabycia, wyjścia i wejścia - metodami fifo, lifo...

Niektórzy boją się aż to kupować, bo są przekonani że do obsługi tego prymitywu musieliby zatrudnić profesora od księgowości i 4 informatyków...

0

Microsoft nie uważa za priorytet łatwego, graficznego klikania aplikacji GUI w C++.
To co opisujesz "prościutki programik do liczenia magazynu" pod Visual Studio pisze się w C#.

Zawsze też możesz doinstalować np. Qt do Visual Studio.

0
plolek napisał(a):

Różnego rodzaju, profesjonalne, uniwersalne - do domu, zagrody, szkoły, banku, biura i biznesu - tak?

Tak.
Rozumiem, że Twój świat ogranicza się do tworzenia desktopowego GUI w C++, ale dla Visual Studio jest to tylko jedno z wielu zastosowań. Zapewne są też IDE, które lepiej sobie z tym radzą, więc najlepiej zrobisz, jeśli się nimi zainteresujesz.

1
plolek napisał(a):

Świetnie, ale tak pracowało się już z 15 lat temu... na 486 i win 95.

Zaraz. sam przecież zapytałeś:

plolek napisał(a):

w tym starym formacie... potem to wisi w pliku .rc - takie coś

tak jakby ci właśnie zależało na pisaniu "po staremu", w czystym WinAPI, a teraz plujesz?

zy że MS przez te całe 10 lat kopiuje i rozbudowuje coś w stylu VCL Borlanda?!

Nie wiem skąd sobie ubzdurałeś tego Borlanda. Pod VS nie ma nic w stylu VCL dla C++.
Jest co wyżej Windows Forms, ale dla C#. Można co prawda pisać w języku C++-podobnym (C++/CLI) ale to i tak jest .Net Framework, nie natywna aplikacja.

Jeszcze raz: Visual Studio nie ma nic pokroju VCL dla języka C++. Możesz zmienić język, możesz pisać w WinAPI albo MFC (obiektowa nakładka na WinAPI, nadal mu bliżej do WinAPI niż do VCL), a możesz doinstalować do środowiska co ci się podoba, z Qt włącznie.

Mieszasz z błotem całe środowisko dokładnie za brak czegoś takiego jak VCL, jednocześnie zarzucając, że MS "kopiuje i rozbudowuje coś w stylu VCL".
To nie jest rzeczowa dyskusja, to jest hejterstwo.

Ja rozumiem hejcenie w stylu: "VS to zuo, ponieważ: 1. 2. 3.".
Ale twoje zarzuty są niespójne i bezprzedmiotowe.

0
Azarien napisał(a):

tak jakby ci właśnie zależało na pisaniu "po staremu", w czystym WinAPI, a teraz plujesz?

Jasne, jeszcze MASMa kupię i będę w tym rysował te butony i scrllbary bezpośrednio po pamięci ekranu...

Po staremu w c++, czy jakimkolwiek uniwersalnym, zawsze będzie można.
Windows 9 ani 10 raczej nie będzie robiony w tych frameworkach, czy innych interpreterach... to już było popularne - chyba w latach 80-tych. :)

Nie wiem skąd sobie ubzdurałeś tego Borlanda. Pod VS nie ma nic w stylu VCL dla C++.
Jest co wyżej Windows Forms, ale dla C#. Można co prawda pisać w języku C++-podobnym (C++/CLI) ale to i tak jest .Net Framework, nie natywna aplikacja.

VCL też produkują te formy i do okienek.

Jeszcze raz: Visual Studio nie ma nic pokroju VCL dla języka C++. Możesz zmienić język, możesz pisać w WinAPI albo MFC (obiektowa nakładka na WinAPI, nadal mu bliżej do WinAPI niż do VCL), a możesz doinstalować do środowiska co ci się podoba, z Qt włącznie.

A cóż tu zmienia zmiana języka?
To samo musisz wklepać, jedynie trochę innymi słówkami.

Mogę pisać to w bejsicu... albo nie - lepiej będzie w tym postscripcie drukarkowym.

Mieszasz z błotem całe środowisko dokładnie za brak czegoś takiego jak VCL, jednocześnie zarzucając, że MS "kopiuje i rozbudowuje coś w stylu VCL".

Nie potraficie podać żadnych konkretnych atutów tego środowiska, więc przyjmuję że takowe nie istnieją.

Odnoszę wrażenie, że to jest gdzieś tak na poziomie Turbo C++ 3.5 z 1991r + interpreter Basic z 78. :)

0

Nie potraficie podać żadnych konkretnych atutów tego środowiska, więc przyjmuję że takowe nie istnieją.

To nie jest środowisko wyłącznie do C++.
Oprócz C++ natywnego są jego warianty (C++/CLI i C++/CX), C#, Visual Basic i funkcyjny F#; a jako pluginy można doinstalować inne języki, np. Oxygene albo IronPython, żeby podać dwa przykłady.

W pakiecie masz dwie biblioteki okienkowe, przeznaczone dla C# (i VB): Windows Forms i WPF. Pierwsza jest bardzo podobna do VCL, druga bardzo niepodobna – ale nie działa pod C++.

Do tego istnieje mnóstwo zewnętrznych bibliotek, zarówno dla C++ jak i C#.

Oprócz aplikacji desktopowych można pisać "kafelki" dla Win8, serwisy WWW w różnych ASP.Net, WebForms, MVC; różne MSSQL-e, Azure'y, Silverlighty i SharePointy. dodatki do Office'a. Aplikacje na Windows Phone. LightSwitch. dodatki do samego Visuala.

Samo środowisko ma zaawansowany debugger, zautomatyzowane testy jednostkowe, profiler (w wyższych edycjach); możliwość instalowania dodatków – niektóre potrafią naprawdę cuda.

To czego nie ma, to wbudowanej biblioteki do szybkiego klikania okienek pod natywnym C++.
I tak, trochę tego brakuje. MS nie na to stawiał: jak chcesz klepać okienka, to bardzo proszę, możesz w C#.

Nie każdy program na świecie jest okienkowy. W C++ pisze się gry (DirectX, OpenGL), sterowniki, serwery, usługi, ...

0

Chyba opowiadasz jakieś wieści z trzeciej ręki o tych dialogach w formacie rc.

http://msdn.microsoft.com/en-us/library/vstudio/6zd672xs.aspx

Przecież tam mówią że to może tworzyć od razu i kod - transfer, zdarzenia, itp., o ile jest utworzona klasa (pewnie wywiedziona z CDialog).

http://msdn.microsoft.com/en-us/library/vstudio/kcxs5tsh.aspx
"For project dialog boxes that are already associated with a class..."

Ale nie wiem do końca o czym tam mowa - czy to dot. projektów tylko w MFC,
czy w ogóle, znaczy również tych ala VCL-ów; chociaż cholera wie co to jest.

W czym VS zapisuje te projektowane wizualnie formy (bez używania MFC)?

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