PDA

View Full Version : نوشتن کامپایلر c#.net در vb.net با استفاده از class Microsoft



eyes_shut_number1
یک شنبه 06 خرداد 1386, 22:54 عصر
سلام خوبید بچه ها؟
بازم یه مشکله دیگه!
خیلی دنبالش گشتم ولی نشد گیرش بیارم
میخوام با وی بی .نت کامپایلر سی شارپ . نت رو بنویسم
یعنی توی فرمم که ران شد یه تکس باکس باشه با یه باتن .
یوزر توی تکس باکس کد سی شارپشو بنویسه و با کلیک کردن دستورات اون تو اجرا بشه
یک مقدار که فهمیدم میشه با استفاده از کلاس MICROSOFT.CSHARP...
به جایی رسید ولی من دیگه نتونستم و از بچه ها را هنمایی میخوام
ممنون از کمکتون

Behrouz_Rad
دوشنبه 07 خرداد 1386, 12:11 عصر
http://blogs.crsw.com/spence/articles/1595.aspx

eyes_shut_number1
دوشنبه 07 خرداد 1386, 14:31 عصر
راستش سی شارپ بلد نیستم کد وی بی شو باشه حد اقل متوجه میشم میشه لینک اونو بدین؟

Behrouz_Rad
دوشنبه 07 خرداد 1386, 15:21 عصر
بنده اون مقاله رو ننوشتم که بخوام لینک مقاله رو با زبان VB.NET بهت بدم!
از برنامه های تبدیل کننده برای تبدیل اون کدها استفاده کن.
اگر کمی دقت کنی، خودت به راحتی می تونی اون کدها رو به VB.NET تبدیل کنی...

موفق باشید.

CodeMasterX
دوشنبه 07 خرداد 1386, 15:30 عصر
از سری کتابهای O'Reillly کتابی هست به اسم Comparison Between VB.NET and C#.NET یه همچین چیزی که حجمش هم حدود 2 مگابایت هست که توضیح داده تفاوت های اساسی بین این دو زبان چیه هست.تبدیل این دو زبان به هم خیلی کار سختی نیست چون نیازی نیست مثل تکنولوژی های قبلی مایکروسافت نگران اکتیوایکس ها و غیره باشید بلکه تمام (بیشتر) کدها با استفاده از کتابخانه کلاسهای خود دات نت نوشته شدن.
اگر کتاب رو تو آرشیوم پیدا کردم همینجا آپ میکنم.

__H2__
دوشنبه 07 خرداد 1386, 17:53 عصر
سلام
ضمناَ کامپایلرهای VB.Net و #C به حالت خط فرمانی هستند در نتیجه با یک کلک کوچک میتوانید در برنامه تان فایل تایپ شده کامل دستورات را بسازید و تحویل کامپایلر آماده دهید تا کامپایل شود و اگر خروجی DLL باشد میتوانید در همان زمان اجرا، اجرایش کنید.

با این روش در واقع شما کامپایلری نمیسازید ولی به بهترین شکل میتوانید دستورات نوشتاری VB.Net و یا #C را اجرا کنید!!!
اگر بدردتان میخورد، توضیح بیشتری بدهم ؟؟؟!!

eyes_shut_number1
دوشنبه 07 خرداد 1386, 18:59 عصر
سلام اره منظورم همینه که از 1 تکس باکس کد سی شارپ رو بگیره و اونو کامپایل کنه البته با زدن یک باتن میدونم با یه کد ولی خدایش گشتم پیدا نکردم وگرنه مزاحم دوستان نمیشدم خود ماکروسافت یه کلاس داره Microsoft.Csharp.Csharpprovider ولی نمیدونم باید چیکارش کنم کمکم کنید ممنون میشم

Behrouz_Rad
چهارشنبه 09 خرداد 1386, 11:15 صبح
من نمی دونم فقط من دارم پست شماره ی 2 رو میبینم یا بقیه هم می بینن؟

__H2__
چهارشنبه 09 خرداد 1386, 15:55 عصر
سلام
من تازه بعد از پست 9 کاربر Behrouz_Rad (http://www.barnamenevis.org/forum/member.php?u=7945) آدرس را رفتم و مشاهده کردم! هنوز دقیق مطالعه نکردم اما به نظر خیلی جالب می آید و شاید بعد از مطالعه دقیق در وقت خالی بگویم بی نظیر !!!!!

ولی فعلاً روشی را که گفتم تکمیل میکنم، از کاربر eyes_shut_number1 (http://www.barnamenevis.org/forum/member.php?u=38140) هم به علت تأخیر پیش آمده عضزخواهی میکنم، گرچه توجیه خوبی نیست ولی سرم کمی شلوغ بود !!!!


مثلاً من میخواهیم چهار خط زیر را از TextBox تحویل گرفته و اجرایش کنم و به کاربر نشان دهم.


int a = 5;
int b = 6;
a += b;
System.Windows.Forms.MessageBox.Show("OK! " + a.ToString());


من گفتم بیاییم و یک فایل متنی مثل زیر بسازیم:


using System;
static class Program
{
[STAThread]
static void Main()
{
int a = 5;
int b = 6;
a += b;
System.Windows.Forms.MessageBox.Show("OK! " + a.ToString());
}
}


و خطوط مورد نظر کاربر در همان محل مشخص شده قرار میگیرند، حال این فایل را با نام مثلاً Program.cs در ریشه \:C ذخیره میکنیم و آن را کامپایل میکنیم، با خط فرمان زیر: (با کمک متد System.Diagnostics.Process.Start )


C:\Windows\Microsoft.NET\Framework\v2.0.50727\Csc. exe /reference:C:\Windows\Microsoft.NET\Framework\v2.0. 50727\System.dll /reference:C:\Windows\Microsoft.NET\Framework\v2.0. 50727\System.Windows.Forms.dll /optimize /out:NewExe.exe /target:winexe C:\Program.cs


حاصل اجرای خط فوق ساخته شدن فایل NewEXE.exe در ریشه \:C است. دیگه مسئلهع حل است!!!!! کافیست فایل EXE مذکور
را به وسیله دستور ("System.Diagnostics.Process.Start("C:\NewExe.exe اجرا کنید!

امتحان کنید و نتیجه را ببینید!!! در صورت استفاده از کلاسسهای دیگر باید Refrence آن را به دستتور کامپایل اضافه کنید.