Arasındaki fark "yönetilen" ve "yönetilmeyen"
Hakkında konuşurken/bazen okumak duydum .NET, örneğin "" ve "kod yönetilmeyen" ama ne olduklarını ve aralarındaki fark ne. hiçbir fikrim yok kod yönetilen Onların farkı, tanım olarak nedir? İkisini de kullanmanın sonuçları nelerdir? Bu ayrım var ./Yalnızca Windows ağ?
CEVAP
Yönetilen Kod
Ne Visual Basic kod yönetilmektedir .NET ve C# derleyicileri oluşturun. Diğer şeyler arasında, çöp toplama gibi hizmetleri sunan CLR (Ortak Dil çalışma Zamanı), çalışma zamanı tür denetlemesi ve referans kontrolü çalışır. "Benim kod . gibi düşün yani ^em>başardıCLR tarafından."
Visual Basic ve C#sadeceyönetilen kod üretmek,, eğer bu dillerden birinde bir uygulama yazıyorsanız bir uygulama CLR tarafından yönetilen yazıyoruz. Visual C bir uygulama yazıyorsanız .NET eğer istersen yönetilen kod üretebilir, ama bu isteğe bağlıdır.
Kod Yönetilmeyen
Yönetilmeyen kod düz makine kodu derler. C derleyicileri, bu tanım gereği tüm kod geleneksel C tarafından derlenen 'yönetilmeyen kod'./ Makine Kodu ve ara bir dil değil derler, çünkü aynı zamanda, non-taşınabilir.
Serbest hafıza yönetimi veya başka bir şey CLR sağlar.
Visual Basic veya C ile yönetilmeyen kod oluşturamıyor beri#, Visual Studio tüm yönetilmeyen kod C/C ile yazılmıştır .
İkisini karıştırma
Visual C ya da yönetilmeyen kod yönetilen derlenmiş mümkün aynı uygulama iki karıştırın. Bu bulanıklaştırır hattı arasında iki ve komplike tanımı, ama kayda değer biliyorsun ki hala var bellek sızıntısı varsa, örneğin, sen kullanarak bir üçüncü parti kütüphane ile bazı kötü yazılmış yönetilmeyen kod.
Burada googling bulduğum bir örnek:
#using <mscorlib.dll>
using namespace System;
#include "stdio.h"
void ManagedFunction()
{
printf("Hello, I'm managed in this section\n");
}
#pragma unmanaged
UnmanagedFunction()
{
printf("Hello, I am unmanaged through the wonder of IJW!\n");
ManagedFunction();
}
#pragma managed
int main()
{
UnmanagedFunction();
return 0;
}
&Quot arasındaki fark;Bir" git ekl...
Arasındaki fark "@id/" ve &q...
Arasındaki fark "ekran" ve &...
'devre dışı=&; devre dışı" " ...
GetContext arasındaki fark() , getAppl...