Hala yanlış bilgi.
C# derleyicisi C++'a derlemez. Microsoft intermediate language'a derler. Bu intermediate language dediğimiz şey tam user friendly bir syntaxda değil. Yani görüntüleyebilirsin ama anlamak çaba isteyebilir. Bu intermediate language daha sonrasında CLR (Common language runtime) tarafından JIT (Just in time) olarak makine koduna derlenir ve çalıştırılır. Gelelim bu terimleri açıklamaya.
MSIL yada Microsoft Intermediate Language, .NET tabanlı diller için ortak bir orta dildir. Kendi syntaxları farklı olsada derleyiciler tarafından .NET tarafından çalıştırılmak için ortak bir dile dönüştürülürler. Bu bizi farklı diller için ayrı ayrı runtime yükleme zahmetinden kurtarır. Orta dilin örnek kodunu görmek istersen hemen şöyle güzelce paylaşayım seninle;
Your All-in-One Learning Portal: GeeksforGeeks is a comprehensive educational platform that empowers learners across domains-spanning computer science and programming, school education, upskilling, commerce, software tools, competitive exams, and more.
www.geeksforgeeks.org
CLR yada Common language runtime, bu ortak dilin (CIL yada MSIL) çalıştırılması için gerekli olan çalıştırıcı. Bu senin orta dilindeki kodları alıp JIT (Just-in-time) yani olduğu yerde derleyip, sonrasında da çalıştıracak.
Uzun uzun yazdığım bu yazının hiç bir noktasında C++'ın adı geçmedi farkındasın değil mi? Bir başvuru hatası durumunda da .g.h gibi bir dosya ortaya çıkıyorsa muhtemelen başvurduğun paket yada uzantı C#'ta yazılmamış olabilir demek oluyor. Mümkün bu arada.