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

2011-09-30 17:19
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:

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

edytowany 2x, ostatnio: nerf, 2011-09-30 17:21
Jak tak dalej będziesz szukać to to dojdziesz do najprostszej postaci 0-1:) - xRidx 2011-09-30 17:29
No, ale pod 0 i 1 też coś musi być... =) - Patryk27 2011-09-30 17:33
Jak zejdziesz poniżej kwarków, to opublikuj to w Nature lub Science, ok? - Zjarek 2011-09-30 21:34

Pozostało 580 znaków

2011-09-30 17:23
0

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


Pozostało 580 znaków

2011-09-30 18:04
Rev
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.


Pozostało 580 znaków

2011-09-30 18:12
0

generalnie .Net Framework pod Windows to opakowanie na WinAPI.

Pozostało 580 znaków

Liczba odpowiedzi na stronę

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