C# Tutorial za pocetnkie
Na pocetku instalirajte .NET framework i vrijeme je za pocetak.
1.Prvo otvorite DOS(ako ne znate,to je u startu>run i kucajte cmd).Krenite u praznom dir-u.Nazovite ga
"C:\learncs".Kucajte
> md C:\learncs
> cd C:\learncs
> C:
Sada napravite vas prvi C# program,kucajte "notepad hello.cs"
Iza toga kucajte
using System;
public class Hello
{
public static void Main()
{
Console.WriteLine("Hello C# World :-)"
;
}
}
Ovo vam omogucava da pisete komande u liniji 7 umjesto u sistemu.Veoma korisna precica kada imate puno
klasa definisanih u sistemu.
Sacuvajte file.
Sada bi trebali kompajlovati.Udjite u Doss Shell i kucajte:
csc /nologo /out:hello.exe hello.cs
Ako ima nekih problema ispravite ih,kompajlujte ih opet,i sada imate hello.exe program...
2.Bravo,uradili ste dobar posao,a sada jos teze.Sada cemo kreirati neki objekat.
> md ..\learncs2
> cd ..\learncs2
> notepad hello.cs
i onda kucajte
using System;
public class Echo
{
string myString;
public Echo(string aString)
{
myString = aString;
}
public void Tell()
{
Console.WriteLine(myString);
}
}
public class Hello
{
public static void Main()
{
Echo h = new Echo("Hello my 1st C# object !"
;
h.Tell();
}
}
Fino,25 linija koda!TO je program!Sacuvajte ga,kompajlujte i pokrenite.Sta se desilo?csc trazi Main().
Trebali bi da nadje jedan(samo jedan)i to ce biti pocetak vaseg programa.
U ovom tutori pravimo 2 klase:Echo i Hello.U Main() pravite Echo objekat sa rijeci new.
Idite na
Start menu-> Programs -> Microsoft .NET Framework SDK -> Documentation i trazite u search
public private protected
3.UU,fino ste naucili,sada mozemo koristiti vise fileova ili cak .dll ??
U ovom diru kreirajte 2 filea:
hello.cs
using System;
public class Hello
{
public static void Main()
{
HelloUtil.Echo h = new HelloUtil.Echo("Hello my 1st C# object !"
;
h.Tell();
}
}
i
echo.cs
using System;
namespace HelloUtil
{
public class Echo
{
string myString;
public Echo(string aString)
{
myString = aString;
}
public void Tell()
{
Console.WriteLine(myString);
}
}
}
Koristio sam "HelloUtil.Echo" zasto sto Echo i ime za HelloUtol.
Sada ga kompajlujte oba u jedan .exe sa
> csc /nologo /out:hello.exe *.cs
Sada idemo praviti DLL:
> csc /nologo /t:library /out:echo.dll echo.cs
to je to,dir ce potvrditi
Sada ga mozemo koristiti
> csc /out:hello.exe /r:echo.dll hello.cs
ako ste kucali hello program ce raditi normalno,a ako ste koristili echo.dll program ce pasti.
Mozete taj DLL staviti u global assembly cache(GAC),
sada:
1.napravite asembler kljuc,napravite ga jednom i koristite ga za sve verzije.A kreirate ga sa
sn -k myKeyName.snk
.snk fajl bi trebao biti u dir gdje ste izvrsili kompilaciju.
2.napravite jak assemler dodavajuci .cs fajl sa sljedeci dirom.
using System.Reflection;
using System.Runtime.CompilerServices;
[assembly: AssemblyTitle("My Lib Title"
]
[assembly: AssemblyVersion("1.2.3.4"
]
[assembly: AssemblyKeyFile("myKeyName.snk"
]
Kako ga dodati u GAC??
> gacutil.exe /if myLib.dll
4.Bravo,sada vam treba C Kompajler,preporucujem MinGW,free,dobar.
Napravite 3 fajla
echo.c
#include <stdio.h>
#define DLLOBJECT __declspec(dllexport)
DLLOBJECT void writeln(char* s)
{
printf("%s\n", s);
}
echo.cs
using System;
using System.Runtime.InteropServices;
namespace HelloUtil
{
public class Echo
{
[DllImport("echo.native.dll", CallingConvention=CallingConvention.Cdecl)]
static extern void writeln(string s);
string myString;
public Echo(string aString)
{
myString = aString;
}
public void Tell()
{
writeln(myString);
}
}
}
i
hello.cs
using System;
using HelloUtil;
public class Hello
{
public static void Main()
{
Echo h = new Echo("Hello my 1st interop code !"
;
h.Tell();
}
}
hehe,sada imamo par novih stvari.
[DllImport(.. ........Atrubuti
Mozete dati "nadimak" svakom methodu/fieldu/classu a brojem atrubita.
Oni generiraju nove informacije nekome ko ih razumije.
DllImport razumije kompajler i on mu govori njegovu ulogu,odnosno sta treba raditi.
A sada idemo kompajlovati ovo:!
> csc /nologo /t:library /out:echo.dll echo.cs
> csc /nologo /out:hello.exe /r:echo.dll hello.cs
>
> rem "if the following line don't work, read bellow.."
> gcc -shared -o echo.native.dll echo.c
> strip echo.native.dll
zadnje dvije linije (gcc i strip) su za pravljenje C-DLL.
Sada cu vam nesto reci:
echo.dll i echo.native.dll nisu isti.Ako instalirate echo.dll u GAC nece raditi zato sto nece naci
echo.native.dll...
E sada ste spremni da napadnete
i jos nesto
csgl.dll je C# asembl i csgl.native.dll je samo dll kompajlovan sa GCCom.
Uskoro jos jedan TUT o C# i Programiranju,sljedecu put cu vam pokazati kako napraviti ono kao :
Click hire to earn 1.000.000 $
Dovidjenja!
Na pocetku instalirajte .NET framework i vrijeme je za pocetak.
1.Prvo otvorite DOS(ako ne znate,to je u startu>run i kucajte cmd).Krenite u praznom dir-u.Nazovite ga
"C:\learncs".Kucajte
> md C:\learncs
> cd C:\learncs
> C:
Sada napravite vas prvi C# program,kucajte "notepad hello.cs"
Iza toga kucajte
using System;
public class Hello
{
public static void Main()
{
Console.WriteLine("Hello C# World :-)"
;}
}
Ovo vam omogucava da pisete komande u liniji 7 umjesto u sistemu.Veoma korisna precica kada imate puno
klasa definisanih u sistemu.
Sacuvajte file.
Sada bi trebali kompajlovati.Udjite u Doss Shell i kucajte:
csc /nologo /out:hello.exe hello.cs
Ako ima nekih problema ispravite ih,kompajlujte ih opet,i sada imate hello.exe program...
2.Bravo,uradili ste dobar posao,a sada jos teze.Sada cemo kreirati neki objekat.
> md ..\learncs2
> cd ..\learncs2
> notepad hello.cs
i onda kucajte
using System;
public class Echo
{
string myString;
public Echo(string aString)
{
myString = aString;
}
public void Tell()
{
Console.WriteLine(myString);
}
}
public class Hello
{
public static void Main()
{
Echo h = new Echo("Hello my 1st C# object !"
;h.Tell();
}
}
Fino,25 linija koda!TO je program!Sacuvajte ga,kompajlujte i pokrenite.Sta se desilo?csc trazi Main().
Trebali bi da nadje jedan(samo jedan)i to ce biti pocetak vaseg programa.
U ovom tutori pravimo 2 klase:Echo i Hello.U Main() pravite Echo objekat sa rijeci new.
Idite na
Start menu-> Programs -> Microsoft .NET Framework SDK -> Documentation i trazite u search
public private protected
3.UU,fino ste naucili,sada mozemo koristiti vise fileova ili cak .dll ??
U ovom diru kreirajte 2 filea:
hello.cs
using System;
public class Hello
{
public static void Main()
{
HelloUtil.Echo h = new HelloUtil.Echo("Hello my 1st C# object !"
;h.Tell();
}
}
i
echo.cs
using System;
namespace HelloUtil
{
public class Echo
{
string myString;
public Echo(string aString)
{
myString = aString;
}
public void Tell()
{
Console.WriteLine(myString);
}
}
}
Koristio sam "HelloUtil.Echo" zasto sto Echo i ime za HelloUtol.
Sada ga kompajlujte oba u jedan .exe sa
> csc /nologo /out:hello.exe *.cs
Sada idemo praviti DLL:
> csc /nologo /t:library /out:echo.dll echo.cs
to je to,dir ce potvrditi
Sada ga mozemo koristiti
> csc /out:hello.exe /r:echo.dll hello.cs
ako ste kucali hello program ce raditi normalno,a ako ste koristili echo.dll program ce pasti.
Mozete taj DLL staviti u global assembly cache(GAC),
sada:
1.napravite asembler kljuc,napravite ga jednom i koristite ga za sve verzije.A kreirate ga sa
sn -k myKeyName.snk
.snk fajl bi trebao biti u dir gdje ste izvrsili kompilaciju.
2.napravite jak assemler dodavajuci .cs fajl sa sljedeci dirom.
using System.Reflection;
using System.Runtime.CompilerServices;
[assembly: AssemblyTitle("My Lib Title"
][assembly: AssemblyVersion("1.2.3.4"
][assembly: AssemblyKeyFile("myKeyName.snk"
]Kako ga dodati u GAC??
> gacutil.exe /if myLib.dll
4.Bravo,sada vam treba C Kompajler,preporucujem MinGW,free,dobar.
Napravite 3 fajla
echo.c
#include <stdio.h>
#define DLLOBJECT __declspec(dllexport)
DLLOBJECT void writeln(char* s)
{
printf("%s\n", s);
}
echo.cs
using System;
using System.Runtime.InteropServices;
namespace HelloUtil
{
public class Echo
{
[DllImport("echo.native.dll", CallingConvention=CallingConvention.Cdecl)]
static extern void writeln(string s);
string myString;
public Echo(string aString)
{
myString = aString;
}
public void Tell()
{
writeln(myString);
}
}
}
i
hello.cs
using System;
using HelloUtil;
public class Hello
{
public static void Main()
{
Echo h = new Echo("Hello my 1st interop code !"
;h.Tell();
}
}
hehe,sada imamo par novih stvari.
[DllImport(.. ........Atrubuti
Mozete dati "nadimak" svakom methodu/fieldu/classu a brojem atrubita.
Oni generiraju nove informacije nekome ko ih razumije.
DllImport razumije kompajler i on mu govori njegovu ulogu,odnosno sta treba raditi.
A sada idemo kompajlovati ovo:!
> csc /nologo /t:library /out:echo.dll echo.cs
> csc /nologo /out:hello.exe /r:echo.dll hello.cs
>
> rem "if the following line don't work, read bellow.."
> gcc -shared -o echo.native.dll echo.c
> strip echo.native.dll
zadnje dvije linije (gcc i strip) su za pravljenje C-DLL.
Sada cu vam nesto reci:
echo.dll i echo.native.dll nisu isti.Ako instalirate echo.dll u GAC nece raditi zato sto nece naci
echo.native.dll...
E sada ste spremni da napadnete

i jos nesto
csgl.dll je C# asembl i csgl.native.dll je samo dll kompajlovan sa GCCom.
Uskoro jos jedan TUT o C# i Programiranju,sljedecu put cu vam pokazati kako napraviti ono kao :
Click hire to earn 1.000.000 $

Dovidjenja!

?

