导航:首页 > 源码编译 > vc6源码编译教程

vc6源码编译教程

发布时间:2022-11-29 04:24:33

Ⅰ VC++6.0编译器是如何编译C语言程序的

编译过程如下:
1.预处理阶段,主要是宏替换和库的引入
2.汇编阶段,将1步骤的.c文件通过汇编器生成汇编文件.asm
3.编译阶段,将2步骤的文件通过c编译器,生成目标文件.obj
4.链接阶段,将3步骤的.obj文件通过链接库和其他目标文件,生成可执行文件.exe

Ⅱ 怎样用vc编译C语言文件,请详细说明步骤

如果只是想简单用VC编译c语言文件,可以不用那么复杂,你可以这样做:
在你想保存的文件夹下,新建一个.txt的文本文件,名字就取你要新建立的c文件的名字,但是注意后缀名改为.c;
让后右键(如果只装了vc的话,也可以直接双击打开)选择vc方式打开;
在打开的窗口中编写你的代码,写完后保存,点击!符号(也可以找菜单项中的build下的build all或execute都可以),进行编译和链接,弹出对话框就选择是,如果没有错误就可以通过编译,程序就直接运行

如果是按步骤来会稍微麻烦点,如下:
(1)打开vc环境
(2)选择“File”—“New”
在弹出的对话框中选择"projects"项,先建立工程文件:
i:对话框的左边选择Win32 console Application项
ii:在对话框的右边可以选择路径Location和输入工程名Project name,下边的单选一般默认为Create new workspace即可(因为是新建)
iii:以上设置好后,单击ok,下面的对话框按默认即可,点击finish,然后在下一个对话框中点击ok,工程建所在文件夹就建好了。此时如果按你刚才设定的路径去查看,就可以找到建立的工程文件夹。
(3)建立文件
让后同样在“File”—“New”下,本次选择Files项,在左边选择c++source file项,右边file下可以输入文件名,上边的为指定该文件所在的工程,一般默认即可建立在你刚刚建立的工程文件中,下边的Location为该源文件的路径,都按要求填写好后,点击ok即可进行文件的代码的编写了
(4)代码写好后,如上一部分简单操作时所说的进行编译和链接,让后运行就可以查看结果了。

至于工程是做什么用的,就好比是一个“单位或者说工厂”一样,而源文件好比是单位中的“车间”,这样理解简单点,具体的过程你按我所说的试试吧

附:如果你的英文好的话,很容易理解和看懂出现的各种提示的意思,如果你装的是汉化版的vc,那就更好办了,很容易就看懂的,试试看,祝你成功!

刚开始学习c语言,用的也是vc环境,更本不知道从哪里进入,哪里写代码,所以想了上面的简单的办法,后来看书就慢慢的会用了,相信你很快就会很熟练了,呵呵

Ⅲ 如何在vc6.0中编译程序

很明显是你第二次装程序和上次装的位置不一样!,编译器的位置变了就没办法编译了!
解决办法是打开vc6.0->tools->options->directions,看看下面的三个地址,肯定不是你现在装的vc++6.0的地址
d:\program
files\microsoft
visual
studio\vc98\include
d:\program
files\microsoft
visual
studio\vc98\mfc\include
d:\program
files\microsoft
visual
studio\vc98\atl\include
找到你现在装的vc++6.0中上面三个文件夹的地址,把现在的地址覆盖directions下的地址,点ok就行啦!不是什么程序什么的问题!只是你软件装的问题!

Ⅳ 如何用vc6编译ffmpeg,并单步调试

目前官方ffmpeg的最新版本为0.9, 我们就以此为例:

1. 下载最新git版本的源代码(http://ffmpeg.zeranoe.com/builds/, 本例下载的是2011-12-12版本)
2. 放到MSYS环境里配置,生成config.h文件。mingw gcc是能顺利编译通过整个项目的,并生成最新版的ffmpeg。
3. 建立vc6工程,把相关代码都加入到工程中。由于在vc生成的obj都在一个目录下,所以需要修改文件名,让其不重名。
4. 安装intel compiler 11编译器,单独提取其icl.exe及相关include目录,替换掉vc6自带的cl.exe, 在工程设置里加上/Qstd=c99,用于支持C99语法。
5. 安装intel compiler 10编译器,单独提取lib目录,因为此版本调试库的结构能完美支持vc6的调试信息。
6. 在vc6的options里设置include/exe/lib查找目录,指向intel编译器。
7. 开始修改代码,添加C99的相关linux头文件, 用于支持vc6, (unistd.h, stdint.h, inttypes.h, getopt.h)
8. 添加C99和linux的相关实现代码,ffmpeg需要用到: getopt_long, strtoll, gettimeofday, atoll, usleep等
9. 修改windows的相关兼容代码,GetWindowLongPtr -> GetWindowLong, GWLP_USERDATA
10. 去除硬件加速libavcodec代码,和依赖库代码。选择所需要的模块,修改相关的allcodec.c, alldevices.c, allfilters.c, allformats.c
11. 加上链接库,sdl.lib, winmm.lib, dxguid.lib, wsock32.lib
12. 在os_support.c里,把<winsock2.h>移动到文件最前面。
13. 如果是ffmpeg, 已经能顺利编译了。如果是ffplay,还需要编译静态sdl, 并链接。
14. 等等,音频运行不正确?有雪花声?因为还需要替换所有文件里的<math.h>为<mathimf.h>, 默认的rint等数学函数和gcc不兼容。
15. ok, 大功告成,纯C版本完美运行。
16. 由于ffmpeg0.9在c文件里,添加了一些intel compiler不支持的mmx语法,所以编译mmx/sse加速版本时,一小部分.c文件需要依赖mingw gcc编译成.o文件,再通过vc6的lib.exe工具转换成lib,让vc6链接上。当然还要加上yasm编译的很多汇编obj.

Ⅳ vc++ 6.0如何编译C

打开vc
1.选择new(新建)->project(工程)->win32->输入工程名。然后选择new(新建)->source file->输入文件名.c,如果没有.c,会默认出.cpp。文件输入完成后,选择compile(编译)->build(链接)->go(执行)
2.不新建工程,选择new(新建)->source file(源文件)->输入文件名.c,如果没有.c,会默认出.cpp。文件输入完成后,选择compile(编译)->build(链接)->go(执行)。这时编译器会帮你自动生成一个project(工程)

Ⅵ (VC6.0)1.输入源程序后,如何编译该程序 2.如何链接程序生成可执行文件 3.如何运行程

1单击主菜单栏中的build编译
2在得到后缀为obj的目标程序后选择build菜单下的build选项,表示要求连接并建立一个可执行文件。
3得到可执行文件后选择build菜单下!execute文件名.exe,执行文件。

Ⅶ 一个.c和一个配套.h文件用VC6如何编译运行

既然只有两个文件,那新建一个工程,在工程中新建一个源文件,复制下载的c文件中的源码到新建的源文件中,再新建一个头文件,复制下载的h文件中的源码到新建的头文件中。再在源文件中添加#include "xxx.h"就行了,xxx.h空就是你新建的头文件的名字。之后编译运行即可。
另外如果是文件比较多的话,可以复制文件到工程目录下(VC6右键工程属性能看到路径),然后右键工程中的文件夹可以添加那些文件了。

Ⅷ 怎样用Microsoft visual c++把c源代码编译成exe 可执行文件

以VC6举例:

1、打开电脑上安装的vc6.0,进入如图界面

Ⅸ vc++6.0操作方法

VC++6.0上机操作指南

贵州大学计算机科学与技术学院
张志明
2006年9月

目录
1. Visual C++ 控制台应用程序上机实现步骤
2. MFC对话框应用程序实现举例
3. MFC单文档应用程序实现举例
4. 用32位调试程序了解类和对象的内存映象

1. Visual C++控制台应用程序(Win32 Console Application Project)
上机实现步骤

一. 单文件程序的实现
本教材中的程序在Visual C++环境下都是以Win32 Console Application 项目实现,而且都是单文件程序,即只含有一个源程序(.cpp)文件的C++程序。
一个单文件程序在Visual C++ IDE中的实现主要步骤是:(1)建立新项目(2)建立新文件(3)输入源代码(4)编译、连接,生成可执行程序文件。以上步骤均可在Visual C++的Wizard指导下通过对话框交互输入完成。
1. 建立新项目:
每个C++程序的实现都要建立一个项目。所谓项目是一个文件生成过程的管理单位,项目名称就是最后实现的可执行文件的名称,一个项目就是与生成这个可执行程序文件相关的所有源文件和中间文件的集合,存放在以项目名称命名的文件夹中。

图1 Microsoft Visual C++ 6.0系统初始界面

执行菜单命令File>New,打开New对话框:

图2 打开New对话框

在New对话框的Project选项卡中选择Win32 Console Application选项,然后输入项目存放位置项目名称后确定。
图3 输入项目位置和名称
在Win32 ConsoleApplication-Step 1 of 1对话框中选择An empty project,完成后返回。系统弹出新建项目信息报告对话框。

图4 Win32 ConsoleApplication-Step 1 of 1对话框

图5 新建项目信息报告
2. 建立新文件:
再一次执行菜单命令File>New,打开New对话框,在File选项卡中选择C++ Sourse File选项,然后输入源程序文件名。完成后系统打开源程序(.cpp)文件编辑窗口。

图6 在New对话框输入源程序文件名
3. 输入源代码:
此时即可在源程序(.cpp)文件编辑窗口输入源程序代码。

图7 源程序(.cpp)文件编辑窗口

4. 生成和运行可执行程序文件:
11从源程序文件生成可执行文件,需要经历编译,连接两步,在VC++6.0编程环境中可以有以下几种操作方式:
(1)打开Build (编译)菜单,先执行Compile命令,接着再执行Build命令。
(2)打开Build (编译)菜单,执行Rebuilde All命令。
(3)打开Build (编译)菜单,直接发出Execute 执行命令,一次性完成编译、连接和启动程序执行的任务。
(4)直接单击“!”(BuildExecute)命令按钮,一次性完成编译、连接和启动程序执行的任务。

图8 Build (编译)菜单

图9 程序运行结果

打开工程文件夹可以找到该工程的所有工作文件。

打开工程文件夹中的Debug子文件夹,可以找到生成的可执行(.exe)文件。

二. 多文件程序的实现
一个较大型C++程序,有时需要包含多个源程序文件。一种常见的情况是将类的定义放在头(.h)文件中,将类的实现或对类的访问放在源(.cpp)文件中。

多文件程序的实现与单文件程序的实现方式需要经历同样的步骤,不同的是,在编译之前需要利用新建文件对话框逐一将所有需要的文件追加到项目中。
1. 建立新项目:

2. 建立新文件:
(1)加入和编辑头文件:
在New对话框,在File选项卡中选择C/C++ Header File选项,然后输入头文件名。完成后系统将打开源程序(.h)文件编辑窗口。

(2)加入和编辑源程序文件
打开New对话框,在File选项卡中选择C++ Sourse File选项,然后输入源程序文件名。完成后系统打开源程序(.cpp)文件编辑窗口。
注意:在源程序文件中应该用文件包含命令将头文件包含进来。如下例源程序文件s719.cpp的第一行:#include"h719.h"

3. 生成和运行可执行程序文件:
步骤同单文件程序的生成和执行。

#

2.MFC对话框应用程序实现举例
本指导书给出3个MFC对话框应用程序的实现实例,例1为求三科平均成绩的简单程序,例2为实现一个具有四则运算功能的简单计算器,例3为一个彩票机程序(提供手动摇号和自动摇号两个彩票机程序版本)。
通过这些程序可以达到以下目的:
掌握AppWizard的使用方法。
掌握Workshop中各种视图的使用和在不同视图之间切换的方法。
学会利用控件工具箱中的控件定制对话框界面。
学会控件变量及其他类成员变量的设置。
学会消息映射的概念和操作方法。
学会查看和编辑代码。
学习编译、运行和调试对话框应用程序。

例1.实现一个求三科平均成绩的MFC对话框应用程序。假设运行时的界面如下:

实现步骤:
1. 在Visual C++ 6.0工作开发环境中,New对话框中选择MFC AppWizard [exe]项目,输入项目名称并指定存放位置。

2. 在MFC Wizard Step1选择Dialog(基本对话)程序类型,在MFC Wizard Step2中输入对话框标题“求平均成绩”。

AppWizard对话结束后打开对话框编辑窗口如下:

3. 定制界面:添加控件、设置属性
删除对话框模板中原有的“确定”按钮和内容为“TODO: 在这里设置对话控制。”的Static Text控件。
在控件工具箱中取一个Group Box控件,调整适当大小,鼠标右键单击该控件边框,在弹出的下拉菜单中打开属性对话框。将Group Box控件标题由“Static”改为“求平均分”。

在Group Box中添加4个Static Text控件,按同样方法修改它们的标题属性为“成绩1”、“成绩2”、“成绩3”和“平均分”。
在Group Box中添加4个Edit Box控件,打开属性对话框的Extended Styles选项卡中将它们设置为文本右对齐(Right Aligend Text)方式。其中第4 个Edit Box控件的Styles属性设置为Read-only。

在Group Box中添加一个按钮Button1,打开属性对话框将按钮的标题属性改为 “计算平均分”。
鼠标右键单击“取消”按钮边框,在弹出的下拉菜单中打开属性对话框。将按钮标题改为“退出”。

设计完成的界面如图,其中控件属性列表如下:
控件
ID号
标题
属性
Group Box
IDC_STATIC
求平均分

Static Text
IDC_STATIC
成绩1

Static Text
IDC_STATIC
成绩2

Static Text
IDC_STATIC
成绩3

Static Text
IDC_STATIC
平均分

Edit Box
IDC_EDIT1

Align text:Right
Edit Box
IDC_EDIT2

Align text:Right
Edit Box
IDC_EDIT3

Align text:Right
Edit Box
IDC_EDIT4

Align text:Right;Read-only
Button
IDC_BUTTON1
计算平均分

Button
IDCANCEL
退出

4. 添加成员变量
单击View(查看)>ClassWizard(建立类向导)菜单进入ClassWizard,打开Member Variables选项卡:为4 个Edit Box控件设置对应的变量:

同样的方法为其它3个Edit Box控件设置变量:
控件ID
变量名
变量类型
数值范围
IDC_EDIT1
m_S1
int
0~100
IDC_EDIT2
m_S2
int
0~100
IDC_EDIT3
m_S3
int
0~100
IDC_EDIT4
m_Sav
CString

5. 添加消息映射(两条消息)
进入ClassWizard,打开Messages Maps选项卡,在Object Ids中选择CAverageDlg,在Messages中鼠标单击WM_INIDIALOG,在Member functions中出现生成的消息映射成员函数OnInitDialog提示:

在Object Ids中选择IDC_BUTTON1,在Messages中鼠标单击BN_CLIKED,在弹出对话框中单击OK按钮:在Member functions中出现第二个生成的消息映射成员函数OnButton1。

6. 添加代码
在ClassWizard中双击OnInitDialog函数,打开代码编辑器中的OnInitDialog()函数代码,找到其中的 // TODO: Add extra initialization here,加入下面的黑体字给出的3行代码:
BOOL CDlgDlg::OnInitDialog()
{
CDialog::OnInitDialog();
…;
// TODO: Add extra initialization here
m_Sav="0.00";
m_S1=m_S2=m_S3;
UpdateData(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
}
在ClassWizard中双击OnButton1()函数,打开代码编辑器中的OnButton1()函数代码,找到其中的 // TODO: Add extra initialization here,加入下面的黑体字给出的4行代码:
void CDlgDlg::OnButton1()
{
// TODO: Add extra initialization here
UpdateData();
double ave=(double)(m_S1+m_S2+m_S3)/3.0;
m_Sav.Format("%6.2f",ave);
UpdateData(FALSE);
}

7. 编译运行程序:

注释:
UpdateData()函数的作用是允许更新控件变量,
UpdateData(FALSE) 禁止更新控件变量的值。

例2.设计MFC对话框应用程序,实现一个具有四则运算功能的简单计算器。

1. 新建项目:

2. 定制界面:
(1) 修改MFC AppWizard自动创建的对话框项目模板。删除模板上自动创建的三个控件。
(2) 加入“简单计算器”、“请输入数据:”、“结果”三个静态文本框和相应的3个编辑框。
(3) 加入一个Group Box,标题修改为“请选择运算符:”,并在其中放入4个Radio Button将标题分别改为“+”、“-”、“*”、“/”。
(4) 继续用鼠标从工具箱中向对话框添加和3个按钮控件,更改按钮的标题为“计算”、“清除”、“关闭”。

3. 添加变量
本例中用到以下4个CSimpleCalcDlg类的成员变量:
变量类型
名称
float
m_N1
float
m_N2
float
m_ Result
char
Operator

用ClassWizard为编辑框添加变量:m_N1, m_N2, m_Result

变量char Operator的添加方法:
在WorkSpace中进入ClassView视图, 鼠标右键单击CSimpleCalcDlg, 在菜单中选择“Add Member Variable…”

然后在弹出的对话框的输入变量类型和名称:

4. 添加消息映射
用ClassWizard为按钮控件添加消息映射:

继续用ClassWizard为Radio Button控件添加消息映射:

5. 加入单击按钮时的事件响应代码
在实现文件(cpp文件)中加入单击按钮时的事件响应代码。(双击一个按钮可直接进入函数编辑)
//选择运算符
void CSimpleCalcDlg::OnRadio1()
{ Operator='+'; }
void CSimpleCalcDlg::OnRadio2()
{ Operator='-'; }
void CSimpleCalcDlg::OnRadio3()
{ Operator='*'; }
void CSimpleCalcDlg::OnRadio4()
{ Operator='/'; }
//计算
void CSimpleCalcDlg::OnButton1()
{
UpdateData();
switch(Operator)
{
case '+':
m_Result=m_N1+m_N2;
break;
case '-':
m_Result=m_N1-m_N2;
break;
case '*':
m_Result=m_N1*m_N2;
break;
case '/':
if(m_N2 == 0 )
MessageBox("除数不能为零!");
else
{
m_Result = m_N1/m_N2;
break;
}
default:
m_Result=m_N1+m_N2;
}
UpdateData(FALSE);
}
//清除
void CSimpleCalcDlg::OnButton2()
{
UpdateData();
m_N1=0;
m_N2=0;
m_Result=0;
UpdateData(FALSE);
}
//关闭
void CSimpleCalcDlg::OnButton3()
{ CDialog::OnOK(); }
6. 编译运行程序

例3. 彩票机程序:
本例给出手动摇号和自动摇号两个彩票机程序版本。
1. 彩票机界面:
定制含有7个Edit Box 、1个Progress(进度条)和3侦探按钮控件的对话框界面如下:

2. 设置变量:
(1) 设置进度条变量:

(2) 设置7个编辑框变量:

(3)添加类成员变量m_x:

3. 消息映射:
在ClassWizard中产生OnInitDialog、OnButton1、OnButton2、OnOK四个消息映射函数:

4. 添加代码:
//初始化
BOOL CLotusDlg::OnInitDialog()
{
CDialog::OnInitDialog();

……
// TODO: Add extra initialization here
m_x=0;
m_pProg.SetRange(0,70);
srand((unsigned)time(NULL));
return TRUE; // return TRUE unless you set the focus to a control
}
(一)手动摇号
//手动摇号,每按一次摇号按钮出一个号
void CLotusDlg::OnButton1()
{
// TODO: Add your control notification handler code here

switch(m_x/10)
{
case 0:
m_N1=rand()%36+1;
m_pProg.SetPos(m_x+=10);
break;
case 1:
m_N2=rand()%36+1;
m_pProg.SetPos(m_x+=10);
break;
case 2:
m_N3=rand()%36+1;
m_pProg.SetPos(m_x+=10);
break;
case 3:
m_N4=rand()%36+1;
m_pProg.SetPos(m_x+=10);
break;
case 4:
m_N5=rand()%36+1;
m_pProg.SetPos(m_x+=10);
break;
case 5:
m_N6=rand()%36+1;
m_pProg.SetPos(m_x+=10);
break;
case 6:
m_N7=rand()%36+1;
m_pProg.SetPos(m_x+=10);
break;
}
UpdateData(FALSE);
}
void CLotusDlg::OnButton2()
{
// TODO: Add your control notification handler code here
m_x=0;
m_N1=0;
m_N2=0;
m_N3=0;
m_N4=0;
m_N5=0;
m_N6=0;
m_N7=0;
UpdateData(FALSE);
m_pProg.SetPos(1);
}
void CLotusDlg::OnOK()
{
CDialog::OnOK();
}

(二)自动摇号
将前面实现的手动摇号程序修改为自动定时摇号。
添加OnTimer消息映射函数:

//按摇号按钮启动摇号
void CLotusDlg::OnButton1()
{
SetTimer(1,2000,NULL);
}
void CLotusDlg::OnButton2()
{
m_x=0;
m_N1=0;
m_N2=0;
m_N3=0;
m_N4=0;
m_N5=0;
m_N6=0;
m_N7=0;
UpdateData(FALSE);
m_pProg.SetPos(0);
KillTimer(1);
}
void CLotusDlg::OnTimer(UINT nIDEvent)
{
switch(m_x/10)
{
case 0:
m_N1=rand()%36+1;
m_pProg.SetPos(m_x+=10);
break;
case 1:
m_N2=rand()%36+1;
m_pProg.SetPos(m_x+=10);
break;
case 2:
m_N3=rand()%36+1;
m_pProg.SetPos(m_x+=10);
break;
case 3:
m_N4=rand()%36+1;
m_pProg.SetPos(m_x+=10);
break;
case 4:
m_N5=rand()%36+1;
m_pProg.SetPos(m_x+=10);
break;
case 5:
m_N6=rand()%36+1;
m_pProg.SetPos(m_x+=10);
break;
case 6:
m_N7=rand()%36+1;
m_pProg.SetPos(m_x+=10);
break;
}
UpdateData(FALSE);
CDialog::OnTimer(nIDEvent);
}
void CLotusDlg::OnOK()
{
KillTimer(1);
CDialog::OnOK();
}
5. 注释:
(1)产生随机数的方法
函数unsigned int rand() 产生随机数。
函数void srand(unsigned int seed) 设定随机数产生器的种子,其中seed为随机数产生器的种子,本例中用系统时钟当前值作随机数种子:
srand((unsigned)time(NULL));函数的
表达式rand()%36+1产生1-36之间的随机数
(3) 定时器的使用方法
定时器的使用涉及OnTimer、SetTimer、KillTimer三个函数。
SetTimer用于设定定时时间和启动定时器,其中第一个参数是定时编号,第二个参数是定时的毫秒数。本例中将1号定时器定时时间设定为2秒:
SetTimer(1,2000,NULL);
定时器启动以后将持续工作,每到达一次定时时间即启动一次OnTimer消息函数的执行。KillTimer的作用是停止指定定时器的工作。

3.
MFC单文档应用程序实现举例

创建单文档应用程序的一般步骤:
利用AppWizard创建单文档应用程序框架。
在文档类中声明保存文档数据所需要数据对象。
完成文档类的OnNewDocument函数,初始化新文档。
完成文档类的Serialize函数,保持和加载文档数据。
完成视类的OnInitialUpdate函数,初始化显示。
完成视类的OnDraw函数,显示当前文档内容。
在视类中加入可以使用户编辑文档数据所需的代码。
本实验指导通过以下4 个实验循序渐进演示创建单文档应用程序的基本操作,在前一个例子中演练过的操作,在后面的中出现时不再重复描述。
例1 一个简单的单文档应用程序——记事本程序
例2 简单文本和图形输出
例3 利用定时器输出滚动字幕
例4 文档串行化编程
例1.
一个简单的单文档应用程序——记事本程序
1. 只要在AppWizard的Step 6将Base Class设置为EditView,AppWizard就自动完成了一个记事本程序的设计:

2. 运行程序,即可测试记事本的各种功能:

3.说明:
(1)打开Workshop中的Class视图,可以看到,一个简单的单文档应用程序向导自动建立五个类:

向导自动建立的类
相应源文件
其他源文件
相应头文件
其他头文

Ⅹ vc6.0怎么使用makefile编译,不要工程设置文件(dsp)

call VCVARS32.bat
nmake /NOLOGO /a /s /f XXX.mak

XXX.mak 为你的makefile文件。
把上面两句话保存成文本文件,后缀名改为bat。 然后运行即可

阅读全文

与vc6源码编译教程相关的资料

热点内容
文件夹怎么做标题 浏览:31
腾讯云服务器如何防止被攻击 浏览:879
六棱柱的体积算法 浏览:933
淘宝什么云服务器好用 浏览:340
pythonoa项目 浏览:307
android杜比音效 浏览:341
杀手47为什么连接不了服务器 浏览:108
静态路径命令 浏览:533
一直编译不过怎么办 浏览:829
汽车串联并联算法 浏览:458
助眠解压的声音音频小哥哥 浏览:277
pythoncmd换行 浏览:376
linux取消行号 浏览:355
安卓原生系统官网是什么 浏览:444
底部主图源码 浏览:878
服务器崩了有什么提示 浏览:780
远程海康服务器用什么浏览器 浏览:232
解压报纸图片 浏览:956
python微信公众号开发平台 浏览:895
知识付费网站java源码 浏览:255