Co się kryje w klasach/metodach kodu zarządzanego...

Co się kryje w klasach/metodach kodu zarządzanego...
nerf
  • Rejestracja: dni
  • Ostatnio: dni
0

Witam dziś na programowaniu po odpowiedzi na pytanie nauczyciela dlaczego wybrałem c# a nie c++ spytał o to czy wiem jak to naprawdę działa...

Poszukałem trochę w necie ale nie znalazłem ostatecznej odpowiedzi.
Mianowicie co kryje się pod metodami w c#?
Jak to jest, że WriteLine wywala napis?

Coś w tej metodzie musi się kryć jakiś kod co wypisuje ten tekst. A czym jest ten kod? Są to jakieś specjalne instrukcje procesora/systemu? Czy może klasa napisana w innym języku?

Najlepsze co mi przyszło do głowy to że m$ stowrzył c# tak:

Kopiuj
static class System
{
static public void WriteLine(argumenty)
{
 std::cout << argumenty << std::endl; // No ale wtedy pod funkcjami c++ też musi się coś kryć też inny język? C? A C napisany na Assemblerze a ten na czym? 
}
} 

I tak samo z innymi metodami. Bo w końcu coś w tej metodzie dziać się musi. Czymś ten język zarządzany musieli stworzyć;p
Może pytanie banalne ale mam nadzieje że nie będziecie się nabijać z Świeżaka i pomożecie coś;p

hauleth
  • Rejestracja: dni
  • Ostatnio: dni
0

Najczęściej wszystko ma pokrycie w cstdlib, który z kolei jest nakładką na wywołania systemowe.

RE
  • Rejestracja: dni
  • Ostatnio: dni
0

Akurat zdecydowana większość .NET Frameworka napisana jest w językach zarządzanych (C#, C++/CLI). Bezpośrednio nie korzystają one w ogóle z biblioteki standardowej C/C++. Możliwe, że pośrednio też nie, bo w gruncie rzeczy jej implementacja opakowuje biblioteki systemu, takie jak kernel32.dll (ta z kolei z ntdll.dll już komunikuje się bezpośrednio z kernelem).

Przykładowo System.Console działa poprzez pobranie uchwytu standardowego wyjścia przez GetStdHandle, za pisanie do niej odpowiedzialne jest WriteFile. Nie drążyłem tematu, ale standardowa biblioteka C/C++ robi to pewnie w dokładnie ten sam sposób.

Azarien
  • Rejestracja: dni
  • Ostatnio: dni
0

generalnie .Net Framework pod Windows to opakowanie na WinAPI.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.