基本信息
源码名称:在线编译 c#代码 实例源码下载
源码大小:0.05M
文件格式:.zip
开发语言:PHP
更新时间:2015-12-23
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
<?php class CsharpCompiler { private $program; private $user; function __construct($program,$user) { $this->program=$program; $this->user=$user; } function compile() { $program = base64_encode($this->program); $user=$this->user; // update your folder accordingly $var = shell_exec("src\\cloud.exe cs $program $user"); if($var=="success") { $res = shell_exec("csharp\\".$user.".exe"); return("<pre>".$res."</pre>"."<br/><a href='csharp/$user.exe'> download</a>"); } else { return("<pre>".$var."</pre>"); } } } ?>
下面是cs实现:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Web; using System.IO; using Microsoft.CSharp; using System.CodeDom.Compiler; namespace cloud { class Program { static Program p = new Program(); static void Main(string[] args) { string compiler_result = ""; if(args.Length>0) if (args[0] != "") { switch (args[0]) { case "ess": Console.Write("success"); break; case "eshant": string strs = p.getList("cloud"); Console.WriteLine(strs); break; case "cs": string program = args[1]; string user = args[2]; var base64EncodedBytes = System.Convert.FromBase64String(program); program = System.Text.Encoding.UTF8.GetString(base64EncodedBytes); compiler_result = p.execCode(program,user); break; } } if (compiler_result != "") { Console.Write(compiler_result); return; } //Console.WriteLine(s); // Console.Read(); } public string getList(string path) { try { string[] filePaths = Directory.GetFiles(@"cloud\", "*.*", SearchOption.AllDirectories); return p.Json(filePaths); } catch (Exception e) { Console.WriteLine("not found"); return ""; } } public string Json(string[] data) { string json = "{"; int i = 0; foreach (string str in data) { json =i.ToString() ":" str; if (i != data.Count() - 1) { json = ","; } i ; } json = "}"; return json; } public string execCode(string program,string user) { //Console.WriteLine("In"); var csc = new CSharpCodeProvider(new Dictionary<string, string>() { { "CompilerVersion", "v3.5" } }); var parameters = new CompilerParameters(new[] { "mscorlib.dll", "System.Core.dll" }, "csharp\\" user ".exe", true); parameters.GenerateExecutable = true; CompilerResults results = csc.CompileAssemblyFromSource(parameters, program); string res = "Errors : \n"; //Console.WriteLine(program); if (results.Errors.Count > 0) { Console.WriteLine("err"); results.Errors.Cast<CompilerError>().ToList().ForEach( error => res = error.ErrorText "\n"); return res; } else return "success"; } } }