Sziasztok!
Tudom, hogy hülyeséget kérdezek, de muszáj lesz.
A "Tanuljuk meg a c# programozási nyelvet..." könyvet olvasom, de a könyvbeli második példánál elakadtam. Ott ugyanis ez szerepel:
using System;
using System.Windows.Forms;
ezeket a hibaüzeneteket adja a mono:
error CS0234: The type or namespace name `Windows' does not exist in the namespace `System'. Are you missing an assembly reference?
error CS0246: The type or namespace name `Windows.Forms' could not be found. Are you missing a using directive or an assembly reference?
Feltételezem még installálni kell valamit, csak kérdés, hogy mit?
Ubuntu 8.04 Linux az operációs rendszerem.
Előre is kösz a segítséget!
Szia! A Windows.Forms a
Szia!
A Windows.Forms a Microsoft könyvtára a grafikus elemekre. Szerencsére a Mono-ban ennek nagy része nemrég implementálásra került.
Az Ubuntu 8.04 alatt a következő csomagot kell telepítened: libmono-winforms2.0-cil .
( % sudo aptitude install libmono-winforms2.0-cil )
Ezután, ha monodevelop-ot használsz, hozzá kell adnod a Windows.Forms könyvtárat a referenciáknál a projekthez, és elvileg minden működni fog.
Ok! A fordítás
Ok!
A fordítás sikerült.
Hogyan tudnám a progit futtatni is? Ugyanis hiába sikeres a fordítás, nem találom a lefordított fájlt sehol. Próbálok küzdeni a makefile-val, de az is befuccsol.
Mi a következő lépés fordítás után?
Megoldódott csak nem tudom, hogyan
Sziasztok!
Hát nem tudom hogyan, de egyszer csak el kezdett működni a fordító. Most már létrehozza az exe állományt is. Sajnos nem tudom megmondani, mi volt az eddigi hiba oka.
Nagyjából a következő események zajlottak le:
- Installáltam a MonoDevelop programot
- El kezdtem olvasni a "Tanuljuk meg a c# programozási nyelvet 21 nap alatt" című könyvet, amelyben ez a példaprogram volt leírva:
using System;
using System.Windows.Forms;
namespace HelloWin
{
public class MyForm : Form
{
private TextBox txtEnter;
private Label lblDisplay;
private Button btnOk;
public MyForm()
{
this.txtEnter = new TextBox();
this.lblDisplay = new Label();
this.btnOk = new Button();
this.Text = "My HelloWin App!";
this.txtEnter.Location = new System.Drawing.Point(16, 32);
this.txtEnter.Size = new System.Drawing.Size(264, 20);
this.lblDisplay.Location = new System.Drawing.Point(16, 72);
this.lblDisplay.Size = new System.Drawing.Size(264, 128);
// btnOk
this.btnOk.Location = new System.Drawing.Point(88, 224);
this.btnOk.Text = "OK";
this.btnOk.Click +=
new System.EventHandler(this.btnOK_Click);
// MyForm
this.Controls.AddRange(new Control[] {
this.txtEnter, this.lblDisplay, this.btnOk});
}
static void Main ()
{
Application.Run(new MyForm());
}
private void btnOK_Click(object sender, System.EventArgs e)
{
lblDisplay.Text = txtEnter.Text + "\n" + lblDisplay.Text;
}
}
}
- A mono nem tudott mit kezdeni ezzel, ezért fordultam hozzátok
- zZsOlTi javaslatára létrehoztam egy új megoldást, és abba helyeztem el a programot. A referenciáknál beállítottam a "System.Windows.Forms" referenciát. Ekkor az volt a baj, hogy látszólag sikerült a fordítás (0 hiba, 0 figyelmeztetés), de nem találtam sehol az exe állományt, ami a fordítás eredményének kellet volna lennie. Ezért aztán tovább nyaggattalak benneteket. Sajnos nem sikerült semmilyen eredményre jutnunk.
- Próbálkoztam azzal, hogy előállítom az exe állományt makefile segítségével, de ez sem jött össze.
- Aztán kutattam az interneten és a következő oldalra találtam: http://mono-project.hu/segedletek/gtksharp_kezdo
- Ennek alapján elkezdtem a Gtk#-val foglalkozni. A programokat terminál parancssorból fordítottam a gmcs fordító segítségével. Végre volt egy kis sikerélményem is, hogy valami legalább nekem is sikerül.
- Aztán folytattam azzal, hogy a MonoDevelop-ban írtam Gtk# megoldásokat. Szerencsére ezek is sikerültek.
- Fellelkesülve visszatértem az eredeti Windows.Forms programomhoz. És csodák-csodájára most már azt írta ki, hogy hibát észlelt a fordítás során. Nem tudta azonosítani a "System.Drawing" elemet. Ekkor referenciák közé betettem azt is, és végre rendesen lefordította a programot. Létre is hozta az exe állományt. És működött is.
- Ezután próbálkoztam a makefile generálással, és fordítással. Ez is sikeres volt.
Nagyjából ennyi az eseménytörténete a kezdeti próbálkozásaimnak a C# területén. Van valakinek ötlete, hogy mitől javult meg a MonoDevelop?
Nem tudom mi lehetett a
Nem tudom mi lehetett a problémád. Nekem mindig működnek a WinForms-os dolgok.
Mindenesetre örülök, h sikerült megoldanod.
Ha van kedved írj belőle egy leírást a segédletekbe, hogy másoknak se legyen ezzel problémája.
Segédlet
Sajnos az a baj, nem tudom, hogy mitől javult meg. Ezért aztán nem is tudnám értelmesen elmagyarázni, mit tegyenek, hogy működjön ilyen hiba esetén.