1.simx: 基于C++协程的离散事件仿真库
2.èªå®ä¹View(1)
3.求C++各种平台实用源代码,求各位大神帮下忙。
simx: 基于C++协程的离散事件仿真库
源码:github.com/wwwHui/simx
作者:Hui
起源
在使用 SimCpp 进行交通仿真时,作者遇到了程序被系统杀死和内存占用急剧增加的问题。通过valgrind测试发现,程序存在内存泄漏。string hashcode源码虽然尝试修改SimCpp源码以解决泄漏问题,但最终以失败告终。因此,作者决定参考SimCpp开发一个基于C++协程的离散事件仿真库。
离散事件仿真框架
本仿真库的目标是实现一个支持交通离散事件仿真的库。交通活动可以拆分为一些基础事件,如乘客从A地到B地、车从C地到B地等。这些事件可以用以下方式表示:
为了实现这些事件,需要统一的时间来协调,并记录“等待一段时间”的事件,以便在相应的时间点执行。仿真框架的设计如下:
首先是Event类,表示事件,包含事件执行时间、互动竞技源码事件编号和Process函数等。其次是SimX,用于处理仿真的核心逻辑,包含仿真时间记录、事件ID记录和事件优先队列等。Run函数用于执行所有事件,Timeout函数用于将“等待一段时间”的事件加入到队列中。
基于协程的仿真
C++标准发布后,协程成为C++特性之一。C++的交易渠道源码协程比较基础,使用起来相对复杂。协程是一段可以挂起和恢复的程序,一般是一个支持挂起和恢复的函数。通过协程的挂起和恢复功能,可以实现时间的协调。
以下是一个协程的例子,其中co_await关键字用于挂起当前函数(协程)的执行。协程的挂起是通过co_await表达式实现的,等待体需要实现三个函数:await_ready、await_suspend和await_resume。源码如何看
依据等待体的特性,仿真框架可以这样实现:在需要延时的地方使用SimX类的Timeout函数作为co_await的expr,Timeout函数需要实现相应的功能。
内存泄漏问题
在仿真过程中,可能会遇到内存泄漏问题。对于一些复杂的情况,如部分车的出发时间不确定,作者通过将可能会造成内存泄漏的协程句柄存储下来,并在必要的时候手动释放资源来解决内存泄漏问题。
总结
本文介绍了一个基于C++协程实现的源码剖析spring离散事件仿真库,包含SimX、Event、EventAwait和Promise等类。SimX负责处理仿真逻辑,Event表示仿真事件,EventAwait和Promise则与C++的协程要求配合使用。最后,作者对仿真库的性能进行了测试,并提供了相应的解决方案。
èªå®ä¹View(1)
ç»åè¿åé¢ä¸ç¯å°å°å¦å¦çåºç¡ç¯ä¹åï¼ç»äºå°äºè¿é¶ç¯ï¼æ£å¼è¿å ¥è§£æèªå®ä¹Viewçé¶æ®µãè³äºæ¬ç« è为ä»ä¹è¦å«è¿é¶ç¯(è½ç¶è®²çæ¯åºç¡çå 容)ï¼å 为ä»æ¬ç¯å¼å§ï¼å°ä¼éæ¸æå¼èªå®ä¹Viewçç¥ç§é¢çº±ï¼æ¯ä¸ç¯é½å°æ¯ä¸ä¸ç¯å 容æ´å æ·±å ¥ï¼å©ç¨æå¦çç¥è¯è½å¤å¶ä½æ´å ç«é ·èªå®ä¹Viewï¼å°±åå¨å°é¶ä¸ä¸æ ·ï¼æ¯ä¸ç¯é½æ´ä¸ä¸å±ï¼ 帮å©å¤§å®¶ä¸æ¥æ¥èµ°å人çå· å³°ï¼åºä»»CEOï¼èµ¢åç½å¯ç¾ã 误ï¼æ¯å¸®å©å¤§å®¶æ´å äºè§£é£äºç«é ·çèªå®ä¹Viewæ¯å¦ä½å¶ä½çï¼è¾¾å°ä¸¾ä¸åä¸çææã
ä½ä¸ºä¸ä¸ª<b>æ(hui)追(zhuang)æ±(B)</b>çç¨åºåï¼è¯å®æ³åä¸äºè®©äººç¼åä¸äº®çç¨åºææï¼ä½æ¯ç³»ç»æä¾çé£äºä¸è¬å¾é¾æ»¡è¶³ï¼ä¸ºäº<b>梦(zhuang)æ³(B)</b>å°±å¿ é¡»è¦å¦ä¹ ä¸äºèªå®ä¹Viewãä¸é¢æ们就äºè§£ä¸äºèªå®ä¹Viewç¸å ³çä¸è¥¿ã
èªå®ä¹ViewGroupä¸è¬æ¯å©ç¨ç°æçç»ä»¶æ ¹æ®ç¹å®çå¸å±æ¹å¼æ¥ç»ææ°çç»ä»¶ï¼å¤§å¤ç»§æ¿èªViewGroupæåç§Layoutï¼å å«æåViewã
ä¾å¦ï¼ä¸ä¸ªåºç¨å çåºé¨å¯¼èªæ¡ä¸çæ¡ç®ï¼ä¸è¬é½æ¯ä¸é¢ä¸ºå¾æ ï¼ä¸é¢æ¯æåï¼é£ä¹è¿ä¸¤ä¸ªå°±å¯ä»¥ç¨èªå®ä¹ViewGroupç»åæ为ä¸ä¸ªVeiwï¼æä¾ä¸¤ä¸ªå±æ§åå«ç¨æ¥è®¾ç½®æååå¾çå³å¯ï¼è¿æ ·ä½¿ç¨èµ·æ¥ä¼æ¹ä¾¿å¾å¤ã
å¨æ²¡æç°æçViewï¼éè¦èªå·±å®ç°çæ¶åï¼å°±ä½¿ç¨èªå®ä¹Viewï¼ä¸è¬ç»§æ¿èªViewï¼SurfaceViewæå ¶ä»çViewï¼ä¸å å«åViewã
ä¾å¦ï¼å®ä¹ä¸ä¸ªæ¯æèªå¨å è½½ç½ç»å¾ççImageViewï¼æå¶ä½ä¸ç§ç¹æ®çå¨ç»ææã
<b>ä¸è¬æ¥è¯´ï¼èªå®ä¹Viewå¨å¤§å¤æ°æ åµä¸é½ææ¿ä»£æ¹æ¡ï¼å©ç¨å¾çæè ç»åå¨ç»æ¥å®ç°ï¼ä½æ¯ä½¿ç¨åè å¯è½ä¼é¢ä¸´å åèè´¹è¿å¤§ï¼å¶ä½éº»ç¦æ´è¯¸å¤é®é¢ã</b>
Viewçæé å½æ°æåç§éè½½åå«å¦ä¸
å¯ä»¥çåºï¼å ³äºViewæé å½æ°çåæ°æå¤æå°ï¼å æé¤å 个ä¸å¸¸ç¨çï¼çä¸å¸¸ç¨çåç 究ã
<b>æå个åæ°çæé å½æ°å¨APIçæ¶åææ·»å ä¸ï¼æä¸è¬ä¸ä½¿ç¨ï¼æä¸èèã</b>
æä¸ä¸ªåæ°çæé å½æ°ä¸ç¬¬ä¸ä¸ªåæ°æ¯é»è®¤çStyleï¼è¿éçé»è®¤çStyleæ¯æå®å¨å½åApplicationæActivityæç¨çThemeä¸çé»è®¤Styleï¼ä¸åªæå¨æç¡®è°ç¨çæ¶åæä¼çæï¼ä»¥ç³»ç»ä¸çImageButton为ä¾è¯´æï¼
<b>注æï¼å³ä½¿ä½ å¨Viewä¸ä½¿ç¨äºStyleè¿ä¸ªå±æ§ä¹ä¸ä¼è°ç¨ä¸ä¸ªåæ°çæé å½æ°ï¼æè°ç¨çä¾æ§æ¯ä¸¤ä¸ªåæ°çæé å½æ°ã</b>
<b>ç±äºä¸ä¸ªåæ°çæé å½æ°ç¬¬ä¸ä¸ªåæ°ä¸è¬ä¸ç¨ï¼æä¸èèï¼ç¬¬ä¸ä¸ªåæ°çå ·ä½ç¨æ³ä¼å¨ä»¥åç¨å°çæ¶å详ç»ä»ç»ã</b>
æé¤äºä¸¤ä¸ªä¹åï¼åªå©ä¸ä¸ä¸ªåæ°å两个åæ°çæé å½æ°ï¼ä»ä»¬ç详æ å¦ä¸ï¼
以ä¸æ¹æ³è°ç¨çæ¯<b>ä¸ä¸ªåæ°</b>çæé å½æ°ï¼
以ä¸æ¹æ³è°ç¨çæ¯<b>两个åæ°</b>çæé å½æ°ï¼
å ³äºæé å½æ°å 讲è¿ä¹å¤ï¼å ³äºå¦ä½èªå®ä¹å±æ§å使ç¨attrsä¸çå 容ï¼å¨åé¢ä¼è¯¦ç»è®²è§£ï¼ç®ååªéè¦ç¥éè¿ä¸¤ä¸ªæé å½æ°å¨ä½æ¶è°ç¨å³å¯ã
========
æµéView大å°ä½¿ç¨çæ¯onMeasureå½æ°ï¼æ们å¯ä»¥ä»è¿ä¸¤ä¸ªåæ°ååºå®½é«çç¸å ³æ°æ®ï¼
ä»ä¸é¢å¯ä»¥çåº onMeasure å½æ°ä¸æ widthMeasureSpec å heightMeasureSpec è¿ä¸¤ä¸ª int ç±»åçåæ°ï¼ 毫æ çé®ä»ä»¬æ¯å宽é«ç¸å ³çï¼ <b>ä½å®ä»¬å ¶å®ä¸æ¯å®½åé«ï¼ èæ¯ç±å®½ãé«ååèªæ¹åä¸å¯¹åºç模å¼æ¥åæçä¸ä¸ªå¼ï¼</b>
å¨intç±»åçä½äºè¿å¶ä½ä¸ï¼-è¿ä¸¤ä½è¡¨ç¤ºæ¨¡å¼,~0è¿ä¸åä½è¡¨ç¤ºå®½åé«çå®é å¼ã
以æ°å¼(äºè¿å¶ä¸º: )为ä¾(å ¶ä¸æ¨¡å¼åå®é æ°å¼æ¯è¿å¨ä¸èµ·çï¼ä¸ºäºå±ç¤ºæå°ä»ä»¬åå¼äº)ï¼
å®é ä¸å ³äºä¸é¢çä¸è¥¿äºè§£å³å¯ï¼å¨å®é è¿ç¨ä¹ä¸åªéè¦è®°ä½æä¸ç§æ¨¡å¼ï¼ç¨ MeasureSpec ç getSizeæ¯è·åæ°å¼ï¼ getModeæ¯è·å模å¼å³å¯ã
å¦æ对Viewç宽é«è¿è¡ä¿®æ¹äºï¼<b>ä¸è¦è°ç¨super.onMeasure(widthMeasureSpec,heightMeasureSpec);</b>
è¦è°ç¨<b>setMeasuredDimension(widthsize,heightsize);</b> è¿ä¸ªå½æ°ã
======
è¿ä¸ªå½æ°å¨è§å¾å¤§å°åçæ¹åæ¶è°ç¨ï¼
onSizeChangedå¦ä¸ï¼
å¯ä»¥çåºï¼å®åå个åæ°ï¼åå«ä¸º 宽度ï¼é«åº¦ï¼ä¸ä¸æ¬¡å®½åº¦ï¼ä¸ä¸æ¬¡é«åº¦ã
è¿ä¸ªå½æ°æ¯è¾ç®åï¼æ们åªéå ³æ³¨ 宽度(w), é«åº¦(h) å³å¯ï¼è¿ä¸¤ä¸ªåæ°å°±æ¯Viewæç»ç大å°ã
=========
<b>ç¡®å®å¸å±çå½æ°æ¯onLayoutï¼å®ç¨äºç¡®å®åViewçä½ç½®ï¼å¨èªå®ä¹ViewGroupä¸ä¼ç¨å°ï¼ä»è°ç¨çæ¯åViewçlayoutå½æ°ã</b>
ä¸è¿å ³äºViewçlayoutå½æ°æ们ä¸è¬æ éå ³æ³¨ï¼å 为å¨ä¸è¬æ åµä¸æ们åªéå ³æ³¨Viewèªèº«çåæ ç³»å³å¯ï¼é¤éViewç¶æä¸å¨ç¶VIewæå¤ä½ç½®ç¸å ³ã
å¨èªå®ä¹ViewGroupä¸ï¼onLayoutä¸è¬æ¯å¾ªç¯ååºåViewï¼ç¶åç»è¿è®¡ç®å¾åºå个åViewä½ç½®çåæ å¼ï¼ç¶åç¨ä»¥ä¸å½æ°è®¾ç½®åViewä½ç½®ã
å个åæ°åå«ä¸ºï¼
å ·ä½å¯ä»¥åè åæ ç³» è¿ç¯æç« :
PSï¼å ³äºonLayoutè¿ä¸ªå½æ°å¨è®²è§£èªå®ä¹ViewGroupçæ¶åä¼è¯¦ç»è®²è§£ã
========
onDrawæ¯å®é ç»å¶çé¨åï¼ä¹å°±æ¯æ们çæ£å ³å¿çé¨åï¼ä½¿ç¨çæ¯Canvasç»å¾ã
å ³äºCanvasç»å¾å¦åä¸ç« å§ï¼æ¬æ¥æ³åä¸äºå ³äºCanvasåºæ¬æä½ççï¼å¯æ¯ç¯å¹ 太é¿äºQAQï¼ ç个尾巴ä¸ä¸ç¯ååå§ï¼æ¯ç«Canvasç»å¾ä¹æ¯ä¸ä¸ªæ¯è¾åºå¤§çä¸è¥¿ï¼ä¹ä¸æ¯ä¸è¨ä¸¤è¯å°±è½è®²æç½çï¼å°±å°è¿éå§ã
======
èªå®ä¹å®Viewä¹åï¼ä¸è¬ä¼å¯¹å¤æ´é²ä¸äºæ¥å£ï¼ç¨äºæä½Viewçç¸å ³å±æ§ï¼æ§å¶Viewçç¶æçï¼æè éè¦çå¬Viewçååï¼å ·ä½è¿æ¯ç¨åå讲å§(继ç»æå)ã
PS ï¼å®é ä¸ViewGroupæ¯Viewçä¸ä¸ªåç±»ã
View
ViewGroup
View.MeasureSpec
onMeasureï¼MeasureSpecæºç æµç¨ æ路详解
Androidä¸èªå®ä¹æ ·å¼ä¸Viewçæé å½æ°ä¸ç第ä¸ä¸ªåæ°defStyleçæä¹
android viewæé å½æ°ç 究
Android Viewæé æ¹æ³ç¬¬ä¸åæ°ä½¿ç¨æ¹æ³è¯¦è§£
Android èªå®ä¹View onMeasureæ¹æ³çå®ç°
Android APIæå(äº)èªå®ä¹æ§ä»¶ä¹ onMeasure
Androidä¸Viewçç»å¶è¿ç¨ onMeasureæ¹æ³ç®è¿°
求C++各种平台实用源代码,求各位大神帮下忙。
// 项目三—学员管理系统.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<string.h>
#include<windows.h>
int k=0;
struct Student
{
int no;
char name[];
float score[3];
float avg;
float sum;
}stu[],shuchu[];
void print(int a); //输出函数
void menu(); //目录
void one(); //选择一
void two(); //选择二
void three(Student stu1[]); //选择三
void fore(); //选择四
void five(); //选择五
void six(); //选择六
void sever(); //选择七
void eight(); //选择八
void nine(); //选择九
void xuanzhe(int a); //选择函数
int chongfu(Student stu[],int a); //判断学号是否重复
int PDmingzi(Student st[],int num); //判断名字是否合法
void fanhui(); //是否返回主菜单
void fuzhi(Student a[],int num);
int _tmain(int argc, _TCHAR* argv[])
{
//登陆模板
char user[];
char passwork[];
int count=0;
while (count<3)
{
printf("\n\n\t\t请输入用户名:");
gets_s(user);
printf("\t\t请输入密码:");
gets_s(passwork);
if(strcmp(user,"admin")==0&&strcmp(passwork,"")==0)
{
system("cls");
printf("\n\n\t\t登陆成功");
Sleep();printf(">");Sleep();printf(">");Sleep();printf(">");Sleep();printf(">");
Sleep();printf(">");Sleep();printf(">");Sleep();Sleep();printf(">");Sleep();
printf(">");
menu();//调用菜单函数
break;
}
else
{
if (count==2)
{
printf("\t提示:您输入用户和密码错误次数过多,请稍后再试!\n");
system("cls");
break;
}
else
{
printf("\n\n\t\t登陆失败!请重新输入!\n");
}
count++;
system("cls");
}
}
return 0;
}
//菜单
void menu()
{
system("cls");
int count=0;
while(count<3)
{
printf("\n\t\t学 员 管 理 系 统 平 台\n");
printf("---------------------------------\n");
printf("\t◎功能菜单:\n");
printf("\n\t\t-----------------------------\n");
Sleep();
printf("\t\t1、单个学员的信息循环录入\n");
printf("\t\t------------------------------\n");
printf("\t\t2、显示所有学员的信息\n");
printf("\t\t------------------------------\n");
printf("\t\t3、排序显示所有学员信息\n");
printf("\t\t------------------------------\n");
printf("\t\t4、插入单个学员信息\n");
printf("\t\t------------------------------\n");
printf("\t\t5、删除单个学员信息\n");
printf("\t\t------------------------------\n");
printf("\t\t6、查找单个学员信息\n");
printf("\t\t------------------------------\n");
printf("\t\t7、读取所有学员信息\n");
printf("\t\t------------------------------\n");
printf("\t\t8、保存所有学员信息\n");
printf("\t\t------------------------------\n");
printf("\t\t9、退出程序\n");
printf("\t\t------------------------------\n");
printf("请选择:");
char a;
int b;
fflush(stdin);
a=getchar();
if (a>=(1+'0')&&a<=(9+'0'))
{
b=(int)a-'0';
xuanzhe(b);
}
else
{
count++;
if (count==2)
{
system("cls");
printf("错误次数过多!");
break;
}
}
}
}
//选择
void xuanzhe(int a)//选择
{
switch (a)
{
case 1:
system("cls");
one();
break;
case 2:
system("cls");
two();
break;
case 3:
system("cls");
three(stu);
fanhui();
break;
case 4:
system("cls");
fore();
break;
case 5:
system("cls");
five();
break;
case 6:
system("cls");
six();
fanhui();
break;
case 7:
system("cls");
sever();
break;
case 8:
system("cls");
eight();
break;
case 9:
system("cls");
nine();
break;
default:
break;
}
}
//1
void one()
{
char s;
printf("1、单个成绩循环录入:\n");
while (true)//接收输入的
{
while(true)
{
printf("学号:");
scanf_s("%d",&stu[k].no);
if (chongfu(stu,k))
{
printf("学号重复请重新输入!\n");
}
else
{
break;
}
}
while (true)
{
printf("姓名:");
fflush(stdin);
gets_s(stu[k].name);
int a=strlen(stu[k].name);
if (a==0)
{
printf("提示:名字不能为空,请重新输入!\n");
}
else if(PDmingzi(stu,a))
{
printf("提示:名字不能为数字,请重新输入!\n");
}
else
{
break;
}
}
for (int i = 0; i < 3; i++)
{
printf("成绩%d:",i+1);
scanf_s("%f",&stu[k].score[i]);
if (!(stu[k].score[i]<=&&stu[k].score[i]>=0))
{
i--;
printf("输入有误!!请重新输入\n");
continue;
}
}
stu[k].sum=stu[k].score[0]+stu[k].score[1]+stu[k].score[2];
stu[k].avg=stu[k].sum/3.0;
while (true)
{
printf("是否继续录入Y/N?");
fflush(stdin);
s=getchar();
if (s=='N'||s=='n')
{
fuzhi(stu,k);
print(k);
printf("是否返回主菜单(Y/N):");
char a;
fflush(stdin);
a=getchar();
if (a=='y'||a=='Y')
{
menu();
}
}
else if (s=='y'||s=='Y')
{
break;
}
else
{
printf("你的输入有误!请重新输入!\n");
}
}
k++;
}
}
//读正输入的
void print(int a)
{
printf("学号\t姓名\t成绩一\t成绩二\t成绩三\t总成绩\t平均分\n");
for (int i = 0; i <=a ; i++)
{
printf("%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n",shuchu[i].no,shuchu[i].name,shuchu[i].score[0],shuchu[i].score[1],shuchu[i].score[2],shuchu[i].sum,shuchu[i].avg);
}
}
void two()
{
printf("学员信息:\n");
fuzhi(stu,k);
print(k);
fanhui();
}
void three(Student stu1[])
{
//根据平均分降排序所有学员信息
for (int i = 0; i <k ; i++)
{
for (int j = 0; j < k-i; j++)
{
if (stu1[j].avg<stu[j+1].avg)
{
Student temp;
temp=stu1[j];
stu1[j]=stu1[j+1];
stu1[j+1]=temp;
}
}
}
fuzhi(stu1,k);
print(k);
}
void fore()
{
three(stu);
printf("1、插入单个学生信息:\n");
while (true)//接收输入的
{
if (k>0)
k++;
while(true)
{
printf("学号:");
scanf_s("%d",&stu[k].no);
if (chongfu(stu,k))
{
printf("学号重复请重新输入!\n");
}
else
{
break;
}
}
while (true)
{
printf("姓名:");
fflush(stdin);
gets_s(stu[k].name);
int a=strlen(stu[k].name);
if (a==0)
{
printf("提示:名字不能为空,请重新输入!\n");
}
else if(PDmingzi(stu,a))
{
printf("提示:名字不能为数字,请重新输入!\n");
}
else
{
break;
}
}
for (int i = 0; i < 3; i++)
{
printf("成绩%d:",i+1);
scanf_s("%f",&stu[k].score[i]);
if (!(stu[k].score[i]<=&&stu[k].score[i]>=0))
{
i--;
printf("输入有误!!请重新输入\n");
continue;
}
}
stu[k].sum=stu[k].score[0]+stu[k].score[1]+stu[k].score[2];
stu[k].avg=stu[k].sum/3.0;
char s;
while (true)
{
printf("是否继续插入Y/N?");
fflush(stdin);
s=getchar();
if (s=='N'||s=='n')
{
system("cls");
fanhui();
}
else if (s=='y'||s=='Y')
{
break;
}
else
{
printf("你的输入有误!请重新输入!\n");
}
}
}
}
void five()
{
//删除单个学员的信息
print(k);
printf("请输入要删除的学员信息的学号:");
int num;
scanf_s("%d",&num);
int i;
for ( i= 0; i <= k; i++)
{
if (stu[i].no==num)
{
break;
}
}
for (int j = i; j <= k; j++)
{
stu[i]=stu[i+1];
}
k-=1;
fanhui();
}
void six()
{
Student a[1];
while (true)
{
printf("请输入要查找的学员信息的学号:");
int num;
scanf_s("%d",&num);
int i;
for ( i= 0; i <= k; i++)
{
if (stu[i].no==num)
{
a[0]=stu[i];
fuzhi(a,0);
print(0);
}
}
}
}
void sever()
{
FILE *p;
fopen_s(&p,"d:\\项目三存储.txt","rb");
if (p!=NULL)
{
int n=fread(stu,sizeof(struct Student),,p);
if (k==0)
{
k=n-1;
}
}
fclose(p);
}
void eight()
{
FILE *fp;
fopen_s(&fp,"d:\\项目三存储.txt","wb");
fwrite(&stu,sizeof(struct Student),k+1,fp);
fflush(fp);
fclose(fp);
printf("保存成功!\n");
fanhui();
}
void nine()
{
exit(1);
}
int chongfu(Student stu[],int a)
{
for (int i = 0; i < a; i++)
{
if (stu[a].no==stu[i].no)
{
return 1;
}
}
return 0;
}
int PDmingzi(Student st[],int num)
{
for (int i = 0; i <= num; i++)
{
if(st[k].name[i]>='0'&&st[k].name[i]<='9')
{
return 1;
}
}
return 0;
}
void fuzhi(Student a[],int num)
{
for (int i = 0; i <= num; i++)
{
shuchu[i]=a[i];
}
}
void fanhui()
{
printf("是否返回主菜单(Y/N):");
char a;
fflush(stdin);
a=getchar();
if (a=='y'||a=='Y')
{
menu();
}
}
2024-11-15 06:301066人浏览
2024-11-15 06:282304人浏览
2024-11-15 05:571960人浏览
2024-11-15 05:442982人浏览
2024-11-15 04:33223人浏览
2024-11-15 04:292592人浏览
1.?????Դ???֧??Դ??2.易语言传奇世界dll注入器源码3.为什么我的易语言喊话器在QQ行,传奇游戏确不行 源码没什么问题啊4.我的电脑为什么不能开传奇双挂及时雨可以开然后开幻想就会说去易
1.中海油全国有多少个公司都在那个地方中海油全国有多少个公司都在那个地方 中海油旗下有多家上市公司,他们网站上有,大多都分布在天津,上海,深圳,湛江这几个地方。北京、上海、天津、深圳、广东、浙江、
1.ASP.NET编程全能词典书目录2.python代ç å¤§å ¨ç®åï¼3.飞鸽传书vb版源代码?4.ç®å好ç©çç¼ç¨ä»£ç ï¼ASP.NET编