Cześć,
chciałem rozwiać jedną moją wątpliwość dotyczącą Visual C++:
czym dokładnie jest managed code?
W szczególności interesuje mnie:
czy jeżeli używam Visual C++ i piszę program od podstaw to możliwe jest, abym tworzył od razu w "managed code", czy też z managed code mogę jedynie korzystać?
Tak, możesz tworzyć "od razu" w kodzie zarządzanym, wystarczy że utworzysz projekt z zakładki CLR(Common Language Runtime). W takim projekcie oczywiście możesz też korzystać z kodu natywnego. Odwrotnie(pisanie kodu zarządzanego w natywnym projekcie) już takie proste nie jest(o ile w ogóle możliwe).
Kod zarządzany, jak sama nazwa wskazuje jest zarządzany. Tu konkretnie przez platformę .Net - czyli między innymi podlega odśmiecaniu(GC) i innym kwestiom związanym z .Net'em.
btw. aktualnie to się nazywa C++\CLI, jeżeli dobrze pamiętam to nazwa Managed C++ jest starsza.
Odwrotnie(pisanie kodu zarządzanego w natywnym projekcie) już takie proste nie jest(o ile w ogóle możliwe).
Od tego jest właśnie C++/CLI, że pozwala na mieszanie kodu natywnego z zarządzanym.
btw. aktualnie to się nazywa C++\CLI, jeżeli dobrze pamiętam to nazwa Managed C++ jest starsza.
MC++ miał inną składnię. Został zastąpiony przez C++/CLI w Visualu 2005.
Cześć,
dziękuję za odpowiedzi. Ale nadal nie rozumiem:
czy kod "managed" musi podlegać jakimś specjalnym regułom?
Innymi słowy, czy musi być stosowana jakaś specjalna składnia do tworzenia kodu managed?
Gdy tworzę u siebie Windows Forms Application i dołączam pliki .cpp z kodem ANSI C++, to z komunikatów generowanych czasami przez kompilator wynika, że kod w moich plikach .cpp jest unmanaged.
Pozdrawiam
Innymi słowy, czy musi być stosowana jakaś specjalna składnia do tworzenia kodu managed?
tak, jest specjalna składnia: te wszystkie daszki^
,ref class
,value class
i inne.
W programie C++/CLI można mieszać kod standardowego i zarządzanego C++. Kompilator uzna, co skompilować od razu do kodu maszynowego (część natywna) a co zostawić do późniejszej kompilacji JIT (część zarządzana).