提交 8407f7c2 编写于 作者: 丁劲犇's avatar 丁劲犇 😸

初始提交

Initial Commit For new Git Server
上级
__pycache__
/network
*.qm
# User-specific files
*.suo
*.user
*.sln.docstates
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
build/
bld/
[Bb]in/
[Oo]bj/
# Roslyn cache directories
*.ide/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
#NUNIT
*.VisualState.xml
TestResult.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
*_i.c
*_p.c
*_i.h
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opensdf
*.sdf
*.cachefile
# Visual Studio profiler
*.psess
*.vsp
*.vspx
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# JustCode is a .NET coding addin-in
.JustCode
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# NCrunch
_NCrunch_*
.*crunch*.local.xml
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
## TODO: Comment the next line if you want to checkin your
## web deploy settings but do note that will include unencrypted
## passwords
*.pubxml
# NuGet Packages
packages/*
*.nupkg
## TODO: If the tool you use requires repositories.config
## uncomment the next line
#!packages/repositories.config
# Enable "build/" folder in the NuGet Packages folder since
# NuGet packages use it for MSBuild targets.
# This line needs to be after the ignore of the build folder
# (and the packages folder if the line above has been uncommented)
!packages/build/
# Windows Azure Build Output
csx/
*.build.csdef
# Windows Store app package directory
AppPackages/
# Others
sql/
*.Cache
ClientBin/
[Ss]tyle[Cc]op.*
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.pfx
*.publishsettings
node_modules/
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
# SQL Server files
*.mdf
*.ldf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
# Microsoft Fakes
FakesAssemblies/
# C++ objects and libs
*.slo
*.lo
*.o
*.a
*.la
*.lai
*.so
*.dll
*.dylib
# Qt-es
/.qmake.cache
/.qmake.stash
*.pro.user
*.pro.user.*
*.moc
moc_*.cpp
qrc_*.cpp
ui_*.h
Makefile*
*-build-*
# QtCreator
*.autosave
build-*-Debug
build-*-Release
*.bak
*.qm
*_Saved
*.exe
*.db
.vs
*.pyc
/module_templates/csharp/app.config
# 贡献者公约行为准则
## 我们的承诺
为了营造一个开放和欢迎的环境, 我们作为贡献者和维护者承诺, 无论年龄、体型、残疾、种族、性别, 都能参与我们的项目和社区, 成为每个人都能体验到无忧无虑的体验。特征、性别认同和表达、经验水平、教育、社会经济地位、国籍、个人外表、种族、宗教或性认同和取向。
## 我们的标准
有助于创造积极环境的行为示例包括:
* 使用欢迎和包容的语言
* 尊重不同的观点和经验
* 优雅地接受建设性的批评
* 专注于对社会最有利的事情
* 对其他社区成员表示同情
参与者不可接受的行为的示例包括:
* 使用性语言或图像以及不受欢迎的性关注或进步
* 拖拉、侮辱或贬损言论以及个人或政治攻击
* 公共或私人骚扰
* 未经明确许可发布他人的私人信息, 如物理或电子地址
* 在专业背景下可被合理地认为不适当的其他行为
## 我们的责任
项目维护人员负责澄清可接受行为的标准, 并应采取适当和公平的纠正措施, 以应对任何不可接受的行为的情况。
项目维护人员有权和有责任删除、编辑或拒绝与本行为准则不一致的评论、提交、代码、wiki 编辑、问题和其他贡献, 或暂时或永久禁止其他投稿人他们认为不恰当、威胁、攻击性或有害的行为。
## 范围
本《行为守则》既适用于项目空间, 也适用于个人代表项目或其社区的公共空间。代表项目或社区的示例包括使用正式项目电子邮件地址、通过官方社交媒体帐户发布或在在线或离线活动中担任指定代表。项目维护人员可以进一步定义和澄清项目的表示。
## 执行
通过 goldenhawking@163.com 与项目团队联系, 可以报告滥用、骚扰或其他不可接受的行为的情况。将对所有投诉进行审查和调查, 并将作出被认为必要和适合情况的答复。项目小组有义务对事件的记者保密。具体执法政策的更多细节可能会单独发布。
不真诚地遵守或执行《行为守则》的项目维护者可能面临项目领导其他成员确定的临时或永久影响。
## 说明
本行为守则改编自《贡献者公约》1.4 版, 可在 https://www.contributor-covenant.org/version/1/4/code-of-conduct.html 下载
有关本行为守则的常见问题的答案, 请参见 https://www.contributor-covenant.org/faq
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment
include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at goldenhawking@163.com. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see
https://www.contributor-covenant.org/faq
# 贡献项目
作为开发者,您可以参与到项目中去。我们后续将推出详细的贡献指南。
此差异已折叠。
此差异已折叠。
# Description
Give a summary for this pull request here:
- add a new function.
- fix a problem.
- structure optimise.
- something else.
# Detailed change log
Please describ changes as detailed as possible.
## Interface changed
## Function extension
## Bugfix
@mentions <please enter here>
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
#!/bin/bash
g++ -static -static-libstdc++ main.cpp -o example_helloworld
\ No newline at end of file
{
"example_bitxor":{
"name":"bitxor",
"parameters":{
"mask":{
"type":"unsigned char",
"tooltip":"bytemask",
"default":255,
"range":{
"min":0,
"max":255
}
}
},
"input_subjects":
{
"data_in":{
"type":"byte",
"tooltip":"input"
}
},
"output_subjects":{
"data_out":{
"type":"byte",
"tooltip":"output"
}
},
"info":{
"auther":"kelly",
"version":[1,0,0],
"mail":"kelly@163.com"
}
},
"example_reverse":{
"name":"reverse",
"parameters":{
},
"input_subjects":
{
"data_in":{
"type":"byte",
"tooltip":"input"
}
},
"output_subjects":{
"data_out":{
"type":"byte",
"tooltip":"output"
}
},
"info":{
"auther":"kelly",
"version":[1,1,0],
"mail":"kelly@163.com"
}
}
}
#include <cstdio>
#include <string>
#include <cstring>
#include <cstdlib>
#ifdef WIN32
#include <io.h>
#include <fcntl.h>
#endif
using namespace std;
#define MAX_DTALEN 65536
int main(int argc, char * argv[])
{
//In windows, stdio must be set to BINARY mode, to
//prevent linebreak \\n\\r replace.
#ifdef WIN32
setmode(fileno(stdout),O_BINARY);
setmode(fileno(stdin),O_BINARY);
#endif
bool bInfo = false, finished = false;
int instance = 0;
int sub_input = 0, sub_output = 0;
char mask = 0;
string function;
//1. parse cmdline
for (int i=1;i<argc;++i)
{
string arg_key = argv[i], arg_value = argv[i];
int idx = arg_key.find('=');
if (idx>=0 && idx<arg_key.size())
{
arg_key = arg_key.substr(0,idx);
arg_value = arg_value.substr(idx+1);
}
if (arg_key=="--function")
function = arg_value;
else if (arg_key=="--information")
bInfo = true;
else if (arg_key=="--instance")
instance = atoi(arg_value.c_str());
else if (arg_key=="--data_in")
sub_input = atoi(arg_value.c_str());
else if (arg_key=="--data_out")
sub_output = atoi(arg_value.c_str());
else if (arg_key=="--mask")
mask = atoi(arg_value.c_str());
fprintf(stderr,"%s:%s\n",arg_key.c_str(),arg_value.c_str());
fflush(stderr);
}
//2. function case
if (bInfo)
{
//In this example, json file will be published with exe file.
//We will return directly. Or, you can output json here to stdout,
//If you do not want to publish your json file.
return 0;
}
else if (instance<=0 || function.length()==0)
return -1;
else
{
char header[4], data[MAX_DTALEN+1];
memset(data,0,MAX_DTALEN+1);
int n_sub = 0, n_path = 0, n_len = 0;
while(false==finished)
{
fread(header,1,4,stdin); //2.1 read header
if (header[0]!=0x3C || header[1]!=0x5A || header[2]!=0x7E || header[3]!=0x69)
{
fprintf(stderr,"Bad header\n");
break;
}
fread(&n_sub,sizeof(int),1,stdin);
fread(&n_path,sizeof(int),1,stdin);
fread(&n_len,sizeof(int),1,stdin);
if (n_len<0 || n_len >MAX_DTALEN)
{
fprintf(stderr,"Bad length %d\n",n_len);
break;
}
fread(data,sizeof(char),n_len,stdin);
if (n_sub<=0)
{
if (strstr(data, "function=quit;")!=nullptr)
{
finished = true;
continue;
}
}
else if (n_sub != sub_input)
continue;
if (function=="example_bitxor")
{
for (int i=0;i<n_len;++i)
data[i] ^= mask;
}
else if (function=="example_reverse")
{
for (int i=0;i<n_len/2;++i)
{
char t = data[i];
data[i] = data[n_len-1-i];
data[n_len-1-i] = t;
}
}
else
{
fprintf(stderr,"Unknown function %s\n",function.c_str());
break;
}
fwrite(header,1,4,stdout);
fwrite(&sub_output,sizeof(int),1,stdout);
fwrite(&n_path,sizeof(int),1,stdout);
fwrite(&n_len,sizeof(int),1,stdout);
fwrite(data,sizeof(char),n_len,stdout);
fflush(stdout);
}
}
//3.exit
return 0;
}
/**
* C# template by goldenhawking
* C#范例,演示接入taskBus的最小步骤
* @date 2017-11-19
* @author goldenhawking
*/
using System;
using System.Threading;
using System.Collections.Generic;
using System.Linq;
namespace RandomSource
{
class Program
{
/*! C# example demos how to read and write stdin, out in C#
* We will output a random sig for stdout, and listen for stdin with nothing to do except for
* package building.
*/
static void Main(string[] args)
{
uint instance_id = 0;
uint chaos_id = 0;
uint total_path = 8;
uint path_rate = 1024 * 128;
//!解释命令行
//!read cmdline
foreach (string strpar in args)
{
int nidx = -1;
if (0 <= (nidx = strpar.IndexOf("--instance=")))
instance_id = System.Convert.ToUInt32(strpar.Substring(nidx + 11));
else if (0 <= (nidx = strpar.IndexOf("--rand=")))
chaos_id = System.Convert.ToUInt32(strpar.Substring(nidx + 7));
else if (0 <= (nidx = strpar.IndexOf("--total_path=")))
total_path = System.Convert.ToUInt32(strpar.Substring(nidx + 13));
else if (0 <= (nidx = strpar.IndexOf("--path_rate=")))
path_rate = System.Convert.ToUInt32(strpar.Substring(nidx + 12));
}
//Open stdout
System.IO.Stream stdout = System.Console.OpenStandardOutput();
if (chaos_id == 0)
return;
//Open a new thread for data reading
//创建ThreadTest类的一个实例
ThreadRead stdinReader = new ThreadRead();
Thread thread_reader = new Thread(new ThreadStart(stdinReader.ReadStdin));
stdinReader.prmsg("Started!");
uint bytesPer50ms = path_rate / 50;
byte[] buf = new byte[bytesPer50ms+16];
thread_reader.Start();
System.Random rndeng = new System.Random();
int clocks = 0;
double pys = 0;
int pathsel = 0;
while (!stdinReader.finished())
{
for (int p = 0; p < total_path; ++p)
{
for (int i = 0; i < bytesPer50ms; ++i)
{
if (clocks % 16 ==0)
pathsel = rndeng.Next() & 0x01;
if (pathsel == 0)
buf[i + 16] = (byte)(System.Math.Cos(pys) * 120.0);
else
buf[i + 16] = (byte)(System.Math.Cos(pys + 3.1415927) * 120.0);
++clocks;
pys += 3.1415927 / 8;
}
buf[0] = 0x3C; buf[1] = 0x5A; buf[2] = 0x7E; buf[3] = 0x69;
buf[4] = (byte)(chaos_id & 0x0ff);
buf[5] = (byte)((chaos_id>>8) & 0x0ff);
buf[6] = (byte)((chaos_id>>16) & 0x0ff);
buf[7] = (byte)((chaos_id >> 24) & 0x0ff);
buf[8] = (byte)(p & 0x0ff);
buf[9] = (byte)((p >> 8) & 0x0ff);
buf[10] = (byte)((p >> 16) & 0x0ff);
buf[11] = (byte)((p >> 24) & 0x0ff);
buf[12] = (byte)(bytesPer50ms & 0x0ff);
buf[13] = (byte)((bytesPer50ms >> 8) & 0x0ff);
buf[14] = (byte)((bytesPer50ms >> 16) & 0x0ff);
buf[15] = (byte)((bytesPer50ms >> 24) & 0x0ff);
stdout.Write(buf, 0, (int)bytesPer50ms+16);
System.Threading.Thread.Sleep(48);
}
}
}
}
/*
* 我们在一个独立的线程中进行阻塞读取 stdin
* C#对stdin的处理比起其他语言要复杂很多。
* We will read data from stdin with this thread.
* Reading data from redirected stdin is surprisingly challenging.
* @author goldenhawking
*/
class ThreadRead
{
private bool m_bQuit = false;
public bool finished()
{
return m_bQuit;
}
public void prmsg(string strmsg)
{
System.IO.Stream stderr = Console.OpenStandardError();
byte[] byteMsg = System.Text.Encoding.Default.GetBytes(strmsg);
List<byte> lst = new List<byte>(byteMsg);
stderr.Write(byteMsg, 0, lst.Count);
stderr.Flush();
}
public void deal_package(int sub, int path, int len, byte[] package)
{
if (sub==-1)
{
if (len >= 13)
{
if (package[9] == 'q' && package[10] == 'u' && package[11] == 'i' && package[12] == 't')
{
m_bQuit = true;
prmsg("Quit!\n");
}
}
}
//prmsg("Sub "+sub.ToString()+ ",Path " + path.ToString()+ ",Length " + len.ToString());
}
/** 从C#读取重定向的控制台真的是一个有挑战性的工作。感谢Dave Glick的尝试。
* Thks for this blog, that reading stdin from c# is a quite difficult work.
*@ref https://daveaglick.com/posts/capturing-standard-input-in-csharp
*/
public byte[] read_from_stdin(int size)
{
byte[] buffer = new byte[size];
int red = 0;
System.IO.Stream stream = Console.OpenStandardInput();
int read = -1;
AutoResetEvent gotInput = new AutoResetEvent(false);
while (read< size)
{
Thread inputThread = new Thread(() =>
{
try
{
read = stream.Read(buffer, red, buffer.Length - red);
red += read;
gotInput.Set();
}
catch (ThreadAbortException)
{
Thread.ResetAbort();
}
})
{
IsBackground = true
};
inputThread.Start();
// Timeout expired?
if (!gotInput.WaitOne(100))
inputThread.Abort();
}
return buffer;
}
public void ReadStdin()
{
do
{
byte[] bf_red = read_from_stdin(4);
if (bf_red[0] != 0x3C || bf_red[1] != 0x5A || bf_red[2] != 0x7E || bf_red[3] != 0x69)
continue;
int subject = 0, path = 0, length = 0;
bf_red = read_from_stdin(4);
subject += (bf_red[0] << 0); subject += (bf_red[1] << 8);
subject += (bf_red[2] << 16); subject += (bf_red[3] << 24);
bf_red = read_from_stdin(4);
path += (bf_red[0] << 0); path += (bf_red[1] << 8);
path += (bf_red[2] << 16); path += (bf_red[3] << 24);
bf_red = read_from_stdin(4);
length += (bf_red[0] << 0); length += (bf_red[1] << 8);
length += (bf_red[2] << 16); length += (bf_red[3] << 24);
bf_red = read_from_stdin(length);
deal_package(subject, path, length, bf_red);
} while (m_bQuit == false);
}
}
}
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("RandomSource")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Microsoft")]
[assembly: AssemblyProduct("RandomSource")]
[assembly: AssemblyCopyright("Copyright © Microsoft 2018")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("8864cff7-0c1d-4c7c-adec-83c40913482b")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<ProductVersion>8.0.30703</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{29D472C2-640D-4395-ADF2-00B63BEE3FFB}</ProjectGuid>
<OutputType>Exe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>example_csharp</RootNamespace>
<AssemblyName>example_csharp</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkProfile>
</TargetFrameworkProfile>
<FileAlignment>512</FileAlignment>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<PlatformTarget>x86</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<AllowUnsafeBlocks>false</AllowUnsafeBlocks>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<PlatformTarget>x86</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<None Include="example_csharp.json" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
\ No newline at end of file
{
"example_csharp":{
"name":"RANDOM",
"parameters":{
"total_path":{
"type":"int",
"default":2,
"tooltip":"Path Count"
},
"path_rate":{
"type":"int",
"default":1024,
"tooltip":"Bytes/Sec"
}
},
"input_subjects": {
"testIn": {
"tooltip": "testIn",
"type": "byte"
}
},
"output_subjects":{
"rand":{
"type":"byte",
"tooltip":"RANDOM"
}
},
"info":
{
"version":"1,1,0",
"author":"goldenhawking@163.com"
}
}
}

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.27703.2035
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "example_csharp", "example_csharp.csproj", "{29D472C2-640D-4395-ADF2-00B63BEE3FFB}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x86 = Debug|x86
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{29D472C2-640D-4395-ADF2-00B63BEE3FFB}.Debug|x86.ActiveCfg = Debug|x86
{29D472C2-640D-4395-ADF2-00B63BEE3FFB}.Debug|x86.Build.0 = Debug|x86
{29D472C2-640D-4395-ADF2-00B63BEE3FFB}.Release|x86.ActiveCfg = Release|x86
{29D472C2-640D-4395-ADF2-00B63BEE3FFB}.Release|x86.Build.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {E2141C4F-8DEF-440B-8388-4082E69B8747}
EndGlobalSection
EndGlobal

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mateng", "mateng\mateng.vcxproj", "{2183B340-4EED-47D5-81EA-455241D524C4}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Release|Win32 = Release|Win32
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{2183B340-4EED-47D5-81EA-455241D524C4}.Debug|Win32.ActiveCfg = Debug|Win32
{2183B340-4EED-47D5-81EA-455241D524C4}.Debug|Win32.Build.0 = Debug|Win32
{2183B340-4EED-47D5-81EA-455241D524C4}.Debug|x64.ActiveCfg = Debug|x64
{2183B340-4EED-47D5-81EA-455241D524C4}.Debug|x64.Build.0 = Debug|x64
{2183B340-4EED-47D5-81EA-455241D524C4}.Release|Win32.ActiveCfg = Release|Win32
{2183B340-4EED-47D5-81EA-455241D524C4}.Release|Win32.Build.0 = Release|Win32
{2183B340-4EED-47D5-81EA-455241D524C4}.Release|x64.ActiveCfg = Release|x64
{2183B340-4EED-47D5-81EA-455241D524C4}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册