基本信息
源码名称:在线编译 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";
}
}
}