自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Yvan Jiang的专栏

CS、CV、ML

  • 博客(185)
  • 资源 (23)
  • 收藏
  • 关注

原创 shell脚本学习入门教程

文章目录shell脚本学习教程前言创建shellshcshtcshashbashvim显示行号shell注释特殊变量shell替换变量替换命令替换转义字符运算符算数运算符关系运算符布尔运算符字符串运算符文件测试运算符字符串单引号双引号拼接字符串获取字符串长度提取子字符串查找子字符串数组定义数组索引数组数组长度if条件语句case语句for循环while循环until循环函数函数调用删除函数函数参数重定向输出重定向输入重定向重定向深入讲解shell脚本学习教程前言任何代码最终都要被“翻译”成二进制的形式

2020-11-20 15:56:54 274

原创 QT程序打包部署教程

QT程序打包部署教程​ 本文讲述如何把deepin系统下开发qt程序打包并部署到测试环境中,测试环境如deepin,ubuntu。1、开发环境​ 开发系统:deepin V20版本​ 开发工具:qt5.14.2,IDE->QtCreator​ 编译生成Realse版本的可执行文件 EClient2、测试环境​ 测试系统:以deepin V20版本和ubuntu 18.04版本来测试。3、脚本打包教程​ 以可执行文件命名新建文件夹EClient,把可执行文件拷贝到其中,然后新建脚本文件

2020-11-13 11:25:03 1442

原创 管道通信相关知识总结

管道概念管道是进程间通信使用的一种共享内存的方式,创建管道的进程称为管道服务器,连接管道的进程成为管道客户端。进程间通过管道方式,一个进程往管道写入数据,另一个进程从管道取数据,类似socket通信从buf缓冲区读写数据,管道操作也类似文件读写。管道分为匿名管道和命名管道,文中主要介绍命名管道操作。匿名管道匿名管道,没有名称,而且是单工模式,就是两个进程只能一个进程往管道写入数据,另一个进程往管道区数据,而且匿名管道只能使用在父进程与子进程之间,因此如果想要在局域网内使用管道通信,不能使用匿名管道。

2020-06-28 18:31:06 552

原创 VS c++编译过程中遇到的问题及解决总结[更新中]

1、问题:LNK1104:无法打开lib文件 LINK : fatal error LNK1104: 无法打开文件“libboost_date_time-vc141-mt-gd-x64-1_71.lib” 解决:[项目属性]->[链接器]->[附加库目录] 添加相应的lib文件的路径,在[链接器]->[输入] 输入lib文件 或者在源码中...

2019-12-13 16:36:51 1130

原创 linux用户态与内核态通过字符设备交互

Linux内核态与用户态交互之字符设备

2023-12-28 17:45:44 1657

原创 git clone错误记录

git错误修改

2022-10-17 11:13:18 241 1

原创 libdbus 实例以及使用d-feet查看接口方法

libdbus 实例以及使用d-feet查看接口方法libdbus介绍总线​ linux系统进程间通过dbus通信,D-BUS由总线构成,总线分为两种,系统总线(system-bus)和会话总线(session-bus)。系统总线在引导时就会启动,这个总线由操作系统和后台进程使用,安全性非常好,以使得任意的应用程序不能欺骗系统事件.会话总线在用户登陆后启动,属于用户私有,是用户进程用来通信的一个会话总线。如果一个应用程序需要接收来自系统总线的消息,可以直接连接到系统总线 —— 不过,它可以发送的消

2022-05-18 15:43:50 1017

原创 zlib库自定义接口封装

zlib库自定义接口封装zlib封装类说明编译zlib库编译自定义接口静态库测试代码代码-文件链接zlib封装类说明实现对文件以及文件夹的压缩解压缩.zip_unzip.h`#ifndef ZIP_UNZIP_H#define ZIP_UNZIP_H#include #include #include #include <type_traits>#include #include <string.h>#include #include <sys/s

2022-04-28 15:53:12 727

原创 String to Integer (atoi)

Implement the myAtoi(string s) function, which converts a string to a 32-bit signed integer (similar to C/C++'s atoi function).The algorithm for myAtoi(string s) is as follows:Read in and ignore any leading whitespace.Check if the next character (if not

2021-12-24 13:14:05 106

原创 2021-09-06 c++11实现最简单的线程池模型

c++11实现最简单的线程池模型​ 线程池主要解决频繁执行一类任务,避免多次创建线程造成系统资源消耗。线程池可以实现任务执行体复用,减少了线程的创建频率。主要用到如下知识点:知识点std::thread​ c++11支持的线程库对象,支持高并发,拷贝构造函数(被禁用),意味着 std::thread 对象不可拷贝构造。如何创建一个thread对象,采用以下方法:void f1(){ std::cout<<"f1"<<std::endl;}void f2(int

2021-09-06 16:45:02 235

原创 system进程创建当前登录用户进程

以下函数调用后创建当前用户的进程,前提是当前执行的进程以system权限运行。BOOL _CreateProcessAsUser(LPSTR command_line, PROCESS_INFORMATION &pi){ BOOL ret = FALSE; DWORD sessionId = 0; HANDLE hToken = NULL; HANDLE hTokenLink = NULL; HANDLE hTokenUser = NULL; STARTUPINFOA si; LU

2021-09-01 13:50:04 435

原创 qmake生成makefile,生成core dump文件

qmake生成makefile,生成core dump文件新建build文件夹mkdir build把Makefile文件生成到build目录下qt creator 生成.pro文件,qmake生成makefile文件,需要运行qmake -o Makefile ../*.pro[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8APn8Srs-1630460025861)(./pics/toMakefile.png)]编译生成可执行文件make1 、当程

2021-09-01 09:35:13 539

原创 标准c++/vs/qt 循环语句使用

std::list<int> intList{ 1,2,3,4,5 }; //C++11 标准 for (int var : intList) { std::cout << var; } //VS 特有,非C++标准,不推荐使用 for each(int var in intList) { std::cout << var; } //Qt 特有 fo...

2021-05-26 13:42:06 298

原创 nmap与zenmap源码编译

nmap源码编译nmap源码工程下载:https://nmap.org/dist/nmap-7.91.tar.bz2依赖库下载:svn checkout https://svn.nmap.org/nmap-mswin32-aux遇到错误:unknown character ‘0x40’1、nmap.rc.in需要修改成nmap.rc,然后修改FILEVERSION 1,0,0,12、把 nmap-mswin32-aux 目录拷贝到nmap-7.91同级目录下3、设置包含目录和库目录,(OPSSL

2021-05-08 10:47:48 444 2

原创 git使用常见问题总结

git常见问题总结修改本地分支与远程分支名称首先 git branch -m 旧分支名 新分支名其次 git push --delete origin 旧分支名将新分支名推上去 git push origin 新分支名将新本地分支和远程相连 git branch --set-upsteam-to origin/新分支名//如何忽略提交文件夹创建.gitignore文件1、忽略文件*.bak # 忽略所有扩展名为.bak的文件!keep.bak # 但keep

2021-04-19 15:59:58 108

原创 log4cplus--通过配置文件输出日志文件

log4cplus配置文件示例日志等级log4cplus 提供的日志等级如下:ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF举例来说:如果定义了日志等级为 ERROR,那么只有标记为 ERROR, FATAL的日志信息才会被记录如果等级为 DEBUG,则所有标记为 DEBUG/INFO/WARN/ERROR/FATAL 的日志才会被记录ALL和OFF级别用来将所有其他类型的级别分别切换

2021-04-19 14:00:00 2281

原创 log4cpus--介绍

log4cplus介绍​ log4cplus是一个线程安全的c++日志API库,从log4j修改而来。wiki介绍:https://sourceforge.net/p/log4cplus/wiki/Home/log4cplus文档​ API文档地址:https://log4cplus.sourceforge.io/docs/html/index.htmllog4cplus示例​ 示例地址:https://sourceforge.net/p/log4cplus/wiki/CodeExamples/

2021-04-16 15:10:50 138

原创 log4cplus--日志框架编译及测试

log4cplus日志框架编译及测试编译库需要下载log4cplus,ThreadPool, Catch三个项目工程,把ThreadPool源文件和Catch源文件放到log4cplus相应目录里。#执行以下命令sudo ./configuresudo makesudo make install运行结果,库文件安装到/usr/local/lib,头文件安装到/usr/local/include测试demo测试程序路径:https://sourceforge.net/p/log4cplu

2021-04-16 11:18:01 313

原创 c++11-线程池实现以及应用

c++11-线程池实现注:本文参考源于csdn博客一般来说实现一个线程池主要包括以下4个组成部分:**1)线程管理器:**用于创建并管理线程池。**2)工作线程:**线程池中实际执行任务的线程。在初始化线程时会预先创建好固定数目的线程在池中,这些初始化的线程一般处于空闲状态,一般不占用CPU,占用较小的内存空间。**3)任务接口:**每个任务必须实现的接口,当线程池的任务队列中有可执行任务时,被空闲的工作线程调去执行(线程的闲与忙是通过互斥量实现的,跟前面文章中的设置标志位差不多),把任务抽象出来

2021-04-09 16:16:14 386

原创 Unicode字符集下多字节与宽字符转换

Unicode字符集下格式各种字符串转换字符类型有三种编码格式:1:SBCS (single byte character set)单字节字符集。在这种编码格式下,所有字符都用一个字节表示。ASCII码就是单字节字符。用“0”来表示一个字节的结束。2 :Unicode 是一种所有的字符都使用两个字节编码的编码模式。Unicode 字符有时也被称作 宽字符。3:MBCS (multi-byte characters set)多字节字符集。在windows里面 MBCS 包含两种字符类型:单字节字符(s

2020-12-18 15:07:45 294

原创 windows获取登录用户名以及SID

LPWSTR GetLoginSid(){ HANDLE hToken; if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ALL_ACCESS, &hToken)) { printf("[!]OpenProcessToken error\n"); return 0; } DWORD Size, UserSize, DomainSize; SID *sid; SID_NAME_USE SidType; TCHAR User.

2020-12-11 15:26:29 1860

原创 解决加载libqxcb.so失败以及Linux库搜索顺序

最近在ubuntu下使用qt编写程序,遇到QtCreator编译完程序后运行出现错误,无法启动程序,错误信息如下图:经过分析,libqxcb.so依赖库应该从qt安装目录下查找,错误提示信息中显示搜索路径为系统库目录,因此可以肯定是搜索路径的问题,因此需要添加环境变量,修改ld.so.config文件修改后生效使用命令sudo ldconfig专门脑补以下Linux关于动态共享库搜索顺序的问题,下面内容为网上查阅:ld.so 动态共享库搜索顺序1、ELF可执行文件中动态段DT_RPATH指

2020-12-09 17:02:49 5100

原创 完整的音频播放示例

完整的音频播放示例使用最新的SDL2.0版本,对于http://dranger.com/ffmpeg教程中示例改进,更新API// tutorial_1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include <iostream>#include <windows.h>extern "C"{#include <libavcodec/avcodec.h>#include <libavformat/avforma

2020-12-09 13:44:29 458

原创 批处理编写以及修改注册表

批处理修改注册表1、批处理注释以下内容摘抄至 https://blog.csdn.net/wh_19910525/article/details/8125762在批处理中**,段注释**有一种比较常用的方法: goto start = 可以是多行文本,可以是命令 = 可以包含重定向符号和其他特殊字符 = 只要不包含 :start 这一行,就都是注释 :start另外,还有 其他各种注释形式,比如:1、:: 注释内容(第一个冒号后也可以跟任何一个非字母数字的字符)2、r

2020-12-09 09:48:20 3062

原创 SDL_AudioSpec结构中call_back函数解析

SDL_AudioSpec结构中call_back函数解析参考教程http://dranger.com/ffmpeg/tutorial03.htmlvoid audio_callback(void *userdata, Uint8 *stream, int len)第一个参数userdata是AVCodecContext,为了获取AVPacket传入AVCodecContext结构体,用于解码第二个参数stream指向需要填充的音频缓冲区第三个参数len,表示音频缓存区的大小对于何时调用call

2020-12-04 14:29:54 1023

原创 local sytem获取登录用户操作注册表

local sytem获取登录用户操作注册表问题windows系统服务进程的用户为local system,具有超级管理员权限,不属于某一个用户,因此在批处理文件中无法使用%username%来获取当前登录的用户名,无法操作当前用户的文件路径C:/users/XXX/…,sytem进程如何获取当前登录用户名并操作HKCU?则需要做一个映射,通过HKEY_USERS/SID,通过用户名找到对应的SID。批处理脚本如下:解决@echo offfor /f "skip=1" %%a in ('quse

2020-10-14 16:12:00 227

原创 字节串与字符串相互转换的代码

字节串与字符串相互转换的代码:inline std::string hexStrTobytes(unsigned char * cHex, int nHexLen){ std::string strBytes; unsigned char pTemp; for(int i=0; i<nHexLen; i=i+2) { if(cHex[i]>='A' && cHex[i]<='F') {

2020-10-12 10:31:58 148

原创 deepin系统下编译使用libtorrent

deepin系统下编译使用libtorrent安装openssl查看系统是否安装sslopenssl version -a安装opensslsudo apt install opensslsudo apt install libssl-dev安装boost下载源码:https://dl.bintray.com/boostorg/release/1.74.0/source/boost_1_74_0.tar.gz#解压tar zxvf boost_1_64_0.tar.gzcd bo

2020-10-09 15:05:35 248

原创 deepin中使用Qt Creator时无法输入中文

拷贝/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts目录下面libfcitxplatforminputcontextplugin.so文件到qt安装目录下 /Qt5.11.1/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts /Qt5.11.1/5.11.1/gcc_64/plugins/platforminputcontexts,设置libfcitxplatforminpu

2020-09-28 10:01:44 307

原创 duilib-自定义圆形按钮-环形进度条控件

duilib-自定义圆形按钮-环形进度条控件如何自定义一个圆形按钮控件内嵌到环形进度条底部,点击按钮刷新进度条值,类似下图:1、在UIDefine.h中增加宏定义#define DUI_CTR_BTN_PROGRESS (_T("btnProgress"))2、编码控件头文件 UIBtnProgress.h#ifndef UI_BTN_PROGRESS_H#define UI_BTN_PROGRESS_H#pragma once#include <GdiPlus.h&

2020-08-21 17:32:11 1619 5

原创 duilib-自定义曲线控件

duilib-自定义曲线控件duilib现有的控件继承图如下:从上图可以看出常见的控件都是由CControlUI继承而来,因此如果需要自定义控件,可以继承CControlUI,重写子类。如何做一个类似windows任务管理器的曲线控件,如下图所示:自定义曲线控件展示如下:下面详细说明如何在duilib源码中自定义曲线控件,以及如何在xml中设置控件属性。1、重写控件类CChartCtrlUI,继承于CLabelUI或者CControlUI,控件类CChartCtrlUI中必须重写的函数方法如

2020-08-20 17:40:03 2120 9

原创 windows性能计数器status code解释

ValueMeaningPDH_CSTATUS_NO_MACHINEPDH was unable to connect to the computer specified in the counter path. If this status is returned when the counter is being added, the counter is not completely initialized. Each time the query is updated, PDH...

2020-08-14 13:09:14 331

转载 <转>HOOK SSDT相关文章

请转到以下链接使用 ???????? :SSDT Hook 之内核函数ZwTerminateProcess实现监控结束进程???? :SSDT Hook 之内核函数ZwC...

2020-08-04 17:36:48 122

原创 DLL注入与卸载(用于hook api)

DLL注入与卸载代码参考网上,最后做个小工具可以加载dll并注入到目标进程1、判断系统版本,winxp win7 win vista win10DWORD checkOS(){ OSVERSIONINFO os_version; os_version.dwOSVersionInfoSize = sizeof(os_version); if (GetVersionEx(&os_version)) { if (os_version.dwMajorVersion == 5) {

2020-08-04 14:22:32 1227

转载 WinDbg下载符号文件

文章目录一、符号文件的用处二、下载符号文件(微软官方符号服务器无法访问)三、加载用户层的符号文件参考资料一、符号文件的用处...

2020-07-28 13:53:06 5544

原创 c++11学习一

1 函数模板namespace tl{ template <typename T> void swap(T & t1, T & t2) { T tmpT; tmpT = t1; t1 = t2; t2 = tmpT; }}2 类模板template <class T> class Stack { public: Stack(); ~Stack(); void push(T t);

2020-07-24 09:06:25 92

原创 windows update更新返回错误码统计(WUSA.exe)

windows update更新返回错误码统计 (WUSA.exe)This Exit Codes or Return Values can be retrieved from an Windows Update Installation.Return CodeReturn Code HEXMessage23592970x240001WU_S_SERVICE_STOP23592980x240002WU_S_SELFUPDATE23592990x240003W

2020-07-22 10:33:16 4146

原创 获取windows已安装应用列表

windows系统安装的软件在注册表中有记录,路径为:注册表根句柄KEY_LOCAL_MACHINE,路径为"Software\Microsoft\Windows\CurrentVersion\Uninstall",涉及到32位应用和64位应用,如果是64位系统,32位的应用则存放在"Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall",64位应用则存放在"Software\Microsoft\Windows\CurrentVers

2020-07-09 16:43:18 8109 3

原创 四、文件 注册表 多线程

文件 注册表 多线程1、文件操作,内核模式下打开、创建、拷贝文件#include <ntddk.h>VOID DriverUnload(PDRIVER_OBJECT pDriverObject){ KdPrint(("驱动成功卸载\n"));}void MyCopyFile(HANDLE source, HANDLE dest){ NTSTATUS status; PVOID buffer = NULL; LARGE_INTEGER offset = { 0 };

2020-07-03 18:06:14 312

原创 三、字符串操作

1、UNICODE_STRING​ windows内核编码字符集采用unicode字符集,字符串处理使用UNICODE_STRING,是一个结构体,定义如下:typedef struct _UNICODE_STRING { USHORT Length; USHORT MaximumLength;#ifdef MIDL_PASS [size_is(MaximumLength / 2), length_is((Length) / 2) ] USHORT * Buffer;#els

2020-07-03 13:54:39 297

基于zlib库实现简单文件及文件夹的压缩解压缩功能

//add file void add_file_to_zip_arrary(std::string file); void add_directory_to_zip_arrary(std::string directory); //zip void run_zip_arrary(const char * dest_zip_path); void run_file_zip(std::string file, const char * dest_zip_path); void run_dest_zip(std::string dest_floder_path, const char * dest_zip_path);

2022-04-28

threadPool.rar

提供c++11线程池实现源码,以及测试示例。适合c++相关的开发者和c++线程池开发者。vs2017下开发,跨平台适用Windows和Linux系统平台。

2021-04-12

shell脚本学习.md

编译型语言的优点是执行速度快、对硬件要求低、保密性好,适合开发操作系统、大型应用程序、数据库等。 脚本语言的优点是使用灵活、部署容易、跨平台性好,非常适合Web开发以及小工具的制作。 Shell 就是一种脚本语言,我们编写完源码后不用编译,直接运行源码即可。

2020-11-20

msdn gdi+文档.pdf

Windows GDI+ is the portion of the Windows XP operating system or Windows Server 2003 operating system that provides two-dimensional vector graphics, imaging, and typography. GDI+ improves on Windows Graphics Device Interface (GDI) (the graphics device interface included with earlier versions of Win

2020-08-31

InjectDllTool.exe

代码参考网上,最后做个小工具可以加载dll并注入到目标进程。64位应用可以导入自己的dll注入到目标进程,实现挂钩,同时可以卸载导入的dll

2020-08-04

GetSoftInfo.rar

windows系统安装的软件在注册表中有记录,路径为:注册表根句柄KEY_LOCAL_MACHINE,路径为"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall",涉及到32位应用和64位应用,如果是64位系统,32位的应用则存放在"Software\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall",64位应用则存放在"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall",如果是32位系统,只能安装32位应用,存放在"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall"

2020-07-09

zstd解压缩库.rar

zstd是Facebook在2016年开源的新无损压缩算法,附件是已编译的32位和64位静态库,头文件有c接口介绍,在vs工程中选择配置属性-c\c++ - 代码生成-运行库-多线程调试/MTd

2020-06-15

transdataexe.rar

此附件是应用程序与驱动交互代码示例,编写了缓冲内存模式和直接内存模式,开发环境vs2017+wdk10,仅供参考,有需要的可以下载学习。

2019-12-10

QNX_Neutrino_RTOS_C_Library_Reference.pdf

附件是qnx c语言库接口说明文档,里面讲解了所有的接口函数,以及参数,使用方法等等,欢迎下载使用。

2019-11-20

libtorrent1.2dll 32 and 64.rar

附件是libtorrent1.2版本编译好的dll和lib文件,以及bt客户端依赖的boost1.7版本库,都是最新版,分别编译了64位和32位,有需要的可以下载使用,文件列表如下: ​ 32位torrent客户端程序 依赖的lib文件:boost_system-vc141-mt-gd-x32-1_70.lib libboost_date_time-vc141-mt-gd-x32-1_70.lib(MD)libboost_date_time-vc141-mt-sgd-x32-1_70.lib(MT) torrent-rasterbar.lib (32) **64位torrent客户端程序** 依赖的lib文件:boost_system-vc141-mt-gd-x64-1_70.lib libboost_date_time-vc141-mt-gd-x64-1_70.lib (MD) libboost_date_time-vc141-mt-sgd-x64-1_70.lib (MT) torrent-rasterbar.lib (64)

2019-07-05

软件注册码生成以及验证方法(duilib界面)

软件注册码生成以及验证, 使用duilib界面库开发的界面,代码讲解如何生成注册码,以及如何验证注册码的正确性,感兴趣的同学可以下载使用demo

2018-09-11

基于tensorflow实现猫狗识别代码(CNN)

通过TensorFlow搭建卷积神经网络实现猫狗识别代码,训练和测试代码完整,下载之后可以直接运行测试打码,运行环境在Linux下,需要把代码中的路径修改为本机实际路径

2018-08-17

卷积神经网络MNIST代码及测试数据

博客:卷积神经网络之手写数字识别应用MNISTCNN https://blog.csdn.net/jiangyingfeng/article/details/81031401 对应的实现代码

2018-07-13

CEdit控件重写类CEditList,输入自动提示匹配内容

CEdit控件重写类CEditList,输入自动提示匹配内容,博客链接https://blog.csdn.net/jiangyingfeng/article/details/80454180

2018-05-25

duilib界面库,库ListCtrl可以添加checkbox

duilib界面库,库ListCtrl可以添加checkbox,可以任意添加各种控件,希望可以帮助别人

2018-01-31

网口通信客户端工具

MFC开发的网口通信工具,有详尽的通信日志记录,希望可以帮助别人,使用过程如果有问题可以提问

2018-01-31

串口通信收发调试工具

自己做的串口通信工工具,希望能够帮助别人,使用过程如果遇到问题可以提问。

2018-01-31

duilib与MFC结合做的软件界面DEMO

网上duilib相关学习资源并不多,希望把自己做的分享出去,这个DEMO是在MFC对话框程序下使用DUILIB界面,工程在VS2005及以上版本都可以编译运行

2018-01-26

串口通信助手工具

设置接收线程,接收串口数据,很好的资源,希望可以帮到学习者

2018-01-26

SkinUI界面库开发

SkinUI界面库开发

2017-04-17

Linux下的C编程基础

Linux下的C编程基础,教你在linux下编程,调试程序,写makefile文件

2014-03-01

很不错的汇编程序设计,看了你就知道了

很不错的汇编程序设计,看了你就知道了,绝对震惊!!!!!!!!!!!!!!!!!!!!!

2011-05-31

世界编程大赛顶尖作品 看了绝对震撼

世界编程大赛顶尖作品,看了之后你绝对震惊,都是牛人啊!!!!!!!!!!!!

2011-05-31

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除