PDA

View Full Version : سوال: ساخت exe



sobhmoud
یک شنبه 15 اردیبهشت 1392, 20:34 عصر
سلام شاید سوالم خیلی تکراری باشه ولی من چیزی درموردش پیدا نکردم !
می خواستم بدونم که چطوری می تونم نرم افزاری درست کنم که محتوا ساز باشه یعنی مثلا چندتا سوال بگیره از کاربر بعد اونارو مرتب کنه و یک فایل exe درست کنه و به کاربر بده

با تشکر

parvizwpf
یک شنبه 15 اردیبهشت 1392, 20:42 عصر
بیشتر توضیح میتونی بدی؟

کامبیز اسدزاده
یک شنبه 15 اردیبهشت 1392, 20:53 عصر
بیشتر و دقیقتر توضیح بدین آیا شما کامپایلر میخواهید بنویسید ؟ یعنی یه تعداد کد و عملیات تایین کنید و اونارو به exe تبدیل کنه ؟

sobhmoud
یک شنبه 15 اردیبهشت 1392, 21:43 عصر
نه کمپایلر می خوام یه چیز که مثلا چند تا سوال از کار بر بگیره و اونو تو یه فایل exe بذاره مثل یه امتحان ساز

SHD.NET
یک شنبه 15 اردیبهشت 1392, 21:55 عصر
نه کمپایلر می خوام یه چیز که مثلا چند تا سوال از کار بر بگیره و اونو تو یه فایل exe بذاره مثل یه امتحان ساز

خوب میشه همون کامپایلر دیگه !!! :لبخند:

مهرداد صفا
یک شنبه 15 اردیبهشت 1392, 23:02 عصر
با سلام.
برای تبدیل رشته ای از کدهای c# به فایل اجرایی نیاز به یک CSharpCodeProvider داریم که با متود System.CodeDom.Compiler.CodeProvider.CodeDomProvid er و ارسال نام زبان به آن می توانیم یک شی از این نوع داشته باشیم.
در مرحله دوم باید پارامتر ها را تنظیم کنیم. برای این کار یک System.CodeDom.Compiler.CompilerParameters ساخته و فیلدها را مطابق میل مقدار دهی می کنیم.
در مرحله آخر کد را تهیه کرده و کمپایل می کنیم.
مثال زیر یک اسم را از textbox می خواند و یک فایل اجرایی از آن میسازد که فقط یک سلام میدهد، و فایل را اجرا میکند:

string message="hello "+ textBox1.Text;
System.CodeDom.Compiler.CompilerParameters parameters=new System.CodeDom.Compiler.CompilerParameters();
parameters.OutputAssembly = @"e:\temp\test.exe";
parameters.GenerateExecutable = true;

Microsoft.CSharp.CSharpCodeProvider provider = (Microsoft.CSharp.CSharpCodeProvider)Microsoft.CSh arp.CSharpCodeProvider.CreateProvider("cs");
string code = "class Program{"+
"static void Main(string[] args){" +
"System.Console.Write( " + ((char)34).ToString() + message + ((char)34).ToString()+ ");" +
"System.Console.ReadKey();}}";

provider.CompileAssemblyFromSource(parameters, code);

System.Diagnostics.Process.Start(@"e:\temp\test.exe");

sobhmoud
دوشنبه 16 اردیبهشت 1392, 15:58 عصر
با تشکر از M.safa ولی اگه امکانش هست این چند خط کد رو یه توضیحی مفصل تر بدی ممنون میشم

aliagamon
پنج شنبه 10 مرداد 1392, 08:47 صبح
یه راه دیگه هم هست که اسون تره والا من دقیقا نفهمیدم که چی میخوای ولی من یه برنامه ساخته بودم همینو میخواست که بزنی دکمه رو یه سری عکس و فرم بسازه تو یه فایل exe ذخیره شه...
اگه بلد باشی میتونی یه پروژه ماژولار (قابل افزودن افزونه و پلاگین)بسازی
بعد این برنامه رو بزاری تو یه محل اجرا برنامت و برنامه اصلی سوال هارو به ماژول با فرمت اون فرم تبدیل کنه (که حتی میتونه تو text هم بزاری یکم تلاش کنی) و در خروجی برنامه ماژولار رو به همراه این ماژول ها(سوالات) خروجی بده که با اجرا شدن برنامه این ماژول ها فراخونی شه(میتونی یه کانفیگ واسه برنامه ماژولار بزاری که تو اون سوالات رو ادرس بدی بهش که فراخونی کنه)
برو دنبالش شاید سخت باشه ولی دردوسر کمتری نسبت به یه کامپیلر داره و فکر میکنم تمیز ترم در بیاد (کامپیلر واسه ویندوز فرم دردوسر داره تو باید دونه دونه بیای به این ابجکت های اضافه پوزیشن بدی که کجا قرار بگیرن چطوری باشن و.....)
در هر صورت باید بری بشینی پاش هر دو حالت نیاز به جست و جو داره که ببینی چطوریه ولی اگه ماژولار یاد بگیری میتونی تو برنامه های بعدی هم بخش افزونه بزاری دیگه هرجور راحتی ببین کدوم راحت تره (شاید من اشتباه کنم و کامپیلر راحت تر باشه)

aliagamon
پنج شنبه 10 مرداد 1392, 08:50 صبح
راستی اینم یه نمونه واسه کامپیلر بیا http://www.codeproject.com/Articles/1931/C-Compiler

asheykh
پنج شنبه 17 بهمن 1392, 11:46 صبح
سلام
خیلی عالیه
فقط بی زحمت یکم بشتر توضیح بده و اگه بخواخی حق مطلب رو کامل ادا کنی سورس رو دقالب یک پروژه بزار
تا بیشتر استفاده کنیم
دیگه اینکه برای یاد گیری این بخش از برنامه نویسی آیا رفرنس یا مرجعی هست که معرفی کنی یا نه ؟
با تشکر ویژه

مهرداد صفا
جمعه 22 فروردین 1393, 12:49 عصر
سلام
خیلی عالیه
فقط بی زحمت یکم بشتر توضیح بده و اگه بخواخی حق مطلب رو کامل ادا کنی سورس رو دقالب یک پروژه بزار
تا بیشتر استفاده کنیم
دیگه اینکه برای یاد گیری این بخش از برنامه نویسی آیا رفرنس یا مرجعی هست که معرفی کنی یا نه ؟
با تشکر ویژه

سلام لطف دارید.
مرجعی خاصی به جز msdn سراغ ندارم.
مطلب خاصی برای گفتن نداره به جز چند نکته در مورد تنظیمات کمپایلر و ... که انشاالله سر فرصت در یک تاپیک مجزا خدمتتون عرض می کنم.

behzadkhan
جمعه 22 فروردین 1393, 18:11 عصر
با سلام.
برای تبدیل رشته ای از کدهای C#‎ به فایل اجرایی نیاز به یک CSharpCodeProvider داریم که با متود System.CodeDom.Compiler.CodeProvider.CodeDomProvid er و ارسال نام زبان به آن می توانیم یک شی از این نوع داشته باشیم.
در مرحله دوم باید پارامتر ها را تنظیم کنیم. برای این کار یک System.CodeDom.Compiler.CompilerParameters ساخته و فیلدها را مطابق میل مقدار دهی می کنیم.
در مرحله آخر کد را تهیه کرده و کمپایل می کنیم.
مثال زیر یک اسم را از textbox می خواند و یک فایل اجرایی از آن میسازد که فقط یک سلام میدهد، و فایل را اجرا میکند:

string message="hello "+ textBox1.Text;
System.CodeDom.Compiler.CompilerParameters parameters=new System.CodeDom.Compiler.CompilerParameters();
parameters.OutputAssembly = @"e:\temp\test.exe";
parameters.GenerateExecutable = true;

Microsoft.CSharp.CSharpCodeProvider provider = (Microsoft.CSharp.CSharpCodeProvider)Microsoft.CSh arp.CSharpCodeProvider.CreateProvider("cs");
string code = "class Program{"+
"static void Main(string[] args){" +
"System.Console.Write( " + ((char)34).ToString() + message + ((char)34).ToString()+ ");" +
"System.Console.ReadKey();}}";

provider.CompileAssemblyFromSource(parameters, code);

System.Diagnostics.Process.Start(@"e:\temp\test.exe");


با سلام

برنامه اجرا شد.

ولی

در محیطی که Visual Studio نصب نیست خطا داد.

ممنون می شوم علت را توضیح دهید.