Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


"Unmanaged code" överallt

Postades av 2003-05-15 16:52:45 - Per Ljung, i forum c# (c-sharp), Tråden har 2 Kommentarer och lästs av 791 personer

Hej, undar om det går att göra C# som inte utnyttjar CLR (garbage collection m.m) nånting, alltså att hela koden markeras som "unmanaged" ?

Verkar kanske konstigt att vilja göra ett sådant program, men jag skriver en uppsats om .NET så det därför jag undrar.

Tack på förhand!

// Per


Svara

Sv: "Unmanaged code" överallt

Postades av 2003-05-15 18:38:48 - Patrik Löwendahl

Det går inte med den kompilatorn som följer med .NET SDK'n. Så alltså är svaret nej för den C# som Microsoft levererar.

Men jag har hört rykten om att någon har skrivit en kompilator för C# som kompilerar till native code (alltså unmanaged) men då har man inte kunnat använda .NET's ramverk av klasser på något sätt, utan det är bara syntax mässigt det liknar MS C#.


Svara

Sv: "Unmanaged code" överallt

Postades av 2003-05-16 07:16:00 - Mattias Lindberg

Nej med C# går det inte. Men om du använder Visual C++ .NET så kan du gör lite olika kombinationer. VC++ innehåller Managed Extensions som gör att du kan skapa C++ kod som körs mot CLR, det intressanta är att man kan skapa klasser som körs i CLR men som inte använder GC.

Genom att använda /clr vid kompileringen så skapas en .NET Assembly och inte en normal x86-image. Dina klasser blir då Managed Code.

Det som du färemot inte får automatiskt är garbage collection. För att få det så måste du explicit tala om att en klass ska hanteras av .NETs minneshantering, detta gör man genom att ange __gc i klass deklarationen. Då får man Managed Data.

Så i C++ är inte Managed Code och Managed Data i 1-1 förhållande, man kan ha det ena utan det andra.

<code>
public __gc class CommunicationHelper
{
public:
RHANDLE Login(bool isSending, String* saddr, int port, String* id);
void Logoff(RHANDLE bbHandle);
System::String* Receive(RHANDLE bbHandle);
void Send(RHANDLE bbHandle, String* transactionName, String* message, String* from, bool fromApplication, String* to, bool toApplication);

private:
void CheckResult(LONG rc);
};
</code>

Ett bra användningsområde för managed c++ är när man har ett existerande API som kräver handles, structures, etc. för kommunikation. Istället för att manuellt definiera allt detta i C# kan man direkt använda det från C++. Genom att skapa en managed C++ klass så kan den sedan lätt refereras från ditt egentliga projekt (skrivet i C# eller VB.NET).

Visual C++ .NET är alltså det enda verktyg . Visual Studio .NET som du kan skapa native/unmanaged kod med.

/Mattias


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 154
27 952
271 704
610
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies