Gå til innhold

Anbefalte innlegg

  • 1 måned senere...
Videoannonse
Annonse
  • 5 måneder senere...

Hvis du har gode C++ kunnskaper fra før av, skulle det ikke være noe problem å lære seg begge. Managed C++ er spesielt kjekt hvis du har gammel kode du ønsker å integrere inn i dine nye .NET prosjekter. Mens C# er det best egnede for utvikling på .NET.

 

Managed C++ er vanlig C++ med noen få tillegg. C# er mer Java-aktig, men en C++ programmerer har ikke noe problemer med å lese og etterhvert skrive C# kode. Det handler mest om å lære seg begrensningene i språket. Det finnes også flere bøker som retter seg mot C++ programmerere som ønsker å lære C#. De fokuserer ofte mye på forskjellene mellom språkene, og høres ut som et bra valg for deg.

Lenke til kommentar

Selv har jeg alltid vært skeptisk til C#, men jeg må si det overraska. Strukturen på språket kan minne endel om C++, så jeg tror ikke at å gå mellom disse språkene er noe problem. Selv leste jeg en tutorial om de grunnleggende og skjønte det meste på litt over en halvtime på bakgrunn av mine C++ kunnskaper. Jeg tror nok at til windows programmering at C# vil være genialt, men det spørs om ikke vb.NET gjør samme jobben da begge deler benytter .NET frameworket.

 

Eneste negative jeg kan si med C# er at det til tider kan bli litt rotete da det blir mye kode for en stakkars nybegynner, og at den krever litt mer ressurser enn f.eks. C++ programmer. Den trenger antagligvis runtime filer også, men dette bør ikke være noe problem.

Lenke til kommentar
  • 2 måneder senere...

Managed C++ er egentlig veldig kjekt, for det er 100 ganger enklere å ha med å gjøre en MFC. Dessuten kan du integrere unmanaged kode med managed, så du kan bruke OpenGL i Managed C++

Du får tak i hDC fra control->CreateGraphics()->GetHDC()

 

Veldig kjekt.

Og i Visual Studio .NET 2003 har du Form Designer til C++ som er lik den i C# og VB.NET

 

Men jeg må si at jeg ble litt forvirret over at man skrev koden i Form1.h til eventene.

Lenke til kommentar

Det er nettopp det som er problemet, Men det er mye du rett og slett ikke kan skrive i managed kode(eller ihvertfall ikke like effektivt)

 

Men en eller annen gang så går det på laveste nivå, så du må bare passe på at koden din ikke gjør noe tøys. Klasser er stikkordet.

 


namespace OpenGLellerno

{

public __gc class oglTexture

 {

   void *tex; // Bruker her void siden det kan være 8, 16, 24 eller 32 bit bilder

   oglTexture(void)

   {

     tex = malloc(1024 * 1024);

   }

   ~oglTexture(void)

   {

     free(tex);

   }

   void setGLPointer(void)

   {

     glTexImage2D(tex, 1024, 1024, 1, GL_ARGB ...);

   }

 };

};

C++ koden er ikke faktisk, bare illustrerende (tror jeg da).

 

Her kan man faktisk ikke bruke managed kode. bare pass på å frigjør det minne du bruker (free() om du bruker malloc(), calloc(), realloc() o.s.v, 'delete' om du bruker 'new') så burde alt fungere. Men ikke managed kode kan ikke 'Reflekteres' altså System.Reflection.Assembly gir ikke tilbake ikke-managed klasser, strukturer, funksjoner eller datatyper.

Lenke til kommentar

Så da kan man konkludere med at hvis man skal utvikle for .NET så tar man C#. Siden man mister mye av hensikten når man må integrere "usikker" kode. Målet var vist for .NET platformen at det skulle bli "trygt" å skrive kode.

 

Uansett jeg jobber med å konvertere til linux.... så dette er vel ikke et tema for meg .. eller ??? :-? :-?

Lenke til kommentar
  • 6 måneder senere...

.NET'ene som er utviklet for microsoft er ikke helt like...

De har blant annet egne klasser...

C# og .NET er genialt konsept fra MS, til og med Linux folk innrømmer dette... Eneste biten som mangeler for .NET er at det kommer versjoner for ander OS enn Windows.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...