炫彩编程手册

更新日期:2020-11-10

简介

界面库设计器与编程语言结合, 集成化开发, 提高开发效率, 减少工具切换, 减少代码输入, 降低重复工作

炫彩编程python风格精简语法, 支持全中文开发,轻量级开发环境, c++运行效率

帮助想学编程,又不懂英文的用户

帮助业余编程人员学习编程

帮助个人开发者简单快速开发软件

帮助专业程序员更好的享受编程

从入门 ->到进阶 -> 到大神, 适合不同层次专业或业余编程人员, 个人或团队开发

炫彩IDE 集界面设计 编码 编译 调试 发布,

未来将支持跨平台,跨语言

编程开发学习一个工具就够了,不必浪费精力学习其他编程语言和工具

UI, 编码, 集成, 可视化, 简单, 快速, 运行效率,中文,英文, 从入门到大神之路

*.xh 特殊头文件 包含外部C/C++头文件, 声明外部函数,数据类型, 宏定义

*.xc 源文件 源代码文件

代码对齐TAB: 强制使用TAB对齐代码块, 不可用空格对齐

pass: 空行占用

支持与C++代码混合, 支持调用外部DLL

支持 中英双文变量函数名称

特性

炫彩编程IDE,集成化, UI可视化, 减少开发中工具的切换, 增加集成度, 智能化, 减少重复工作

内置炫彩界面库支持

支持中文编程, 支持英文编程, 满足不同的人群

新的语法和封装, 相比C++入门更简单, 去除头文件及前置声明概念, 精简语法, 减少代码输入量

与C++相同的性能, 本身底层就是C++编译

可扩展 支持与C++代码混合, 支持调用DLL, C++的库都可以拿来用

支持UNICODE, x64

python 代码风格, 代码更加精简整洁

未来支持跨平台, 支持转换为其他编程语言程序

代码编辑器双模式; 支持代码模式(纯文本)与代码表格模式(类似易语言代码表格)切换

环境安装

下载IDE

炫彩QQ群共享下载, 群号:1653999

环境设置

默认附带VC14开发库, 如果需要其他版本VC请自己修改配置,方法如下:

将 "data\VC\VC14.0-Debug-DLL\" 目录下DLL文件复制到: "C:\Windows\"

或者""C:\Windows\System32\"

或者 添加到环境变量PATH里

(如果已安装了VC14 可忽略)

模块文件夹路径: data\VC\XC\

发布Release模式下编译的exe, 默认是静态编译, 不依赖VC环境DLL

默认带的运行环境vs2015 - VC14.0, 如果使用其他VC版本环境需修改配置文件 "data\config\config.config"

运算符

+

-

*

/

=

等于

%

求余

++

自增1

--

1 自减1

+=

加等于

-=

减等于

==

等于

!=

不等于

<

小于

>

大于

<=

小于等于

>=

大于等于

&&

逻辑与

||

逻辑或

!

取反

&

位与

|

位或

<<

位左移

>>

位右移

注释

单行注释

整型 a //单行注释

多行注释(开发中...)

整型 a

/* 多行注释内容

整型 b

整型 c

*/

整型 d

整型 e

[+]流程控制

如果...否则 if...else

//如果 判断条件

// 条件成立

//否则

// 条件不成立

整型 a = 1

整型 b = 2

如果 a == 1

调试输出("a==1 成立") //此语句将被执行

否则

调试输出("a==1 不成立")

如果 (a==1) && (b==2) //当 a=1 并且 b=2 时 条件成立

pass

循环 while

//循环 条件

// 执行代码

整型 i=0

循环 i<5

调试输出(i)

i++

变量循环 for

变量循环 整型 i=0; i<3; i++

调试输出(i)

计次循环 for

计次循环 整型 i=0; 3 //变量i: 为循环索引; 数字3: 为循环次数; 当i=0时循环3次(0,1,2), 当i=1时循环2次(1,2)

调试输出(i) //输出索引 i 的值

列表循环 for

//普通数组循环

整型 数组A[3]={0}

列表循环 整型 i; 数组A //将循环3次 0-3; 变量i: 接收当前索引值, 数组A: 数组变量

调试输出(数组A[i])

//动态数组循环

动态数组 数组A // 尖括号<>内, 可以是任意数据类型, 比如: 整型, 文本, 指针, 对象; 理解为C++的模板

数组A.添加项(1)

数组A.添加项(2)

数组A.添加项(3)

列表循环 整型 i; 数组A

调试输出(数组A[i])

//字典循环

字典 字典A

字典A[1]=10

字典A[2]=20

字典A[3]=30

列表循环 迭代器 迭代器项; 字典A //迭代器项: 接收当前返回的结果

调试输出( 迭代器项.键, " | ", 迭代器项.值) //打印当前项的键和值

分支判断 switch

分支判断: 需要手动添加"跳出"命令

分支判断跳出: 自动跳出分支

def 整型 测试_分支判断()

调试输出("测试_分支判断")

整型 a=1

分支判断 a

判断 1

调试输出(1)

跳出

判断 2

调试输出(2)

跳出

其他

调试输出(3)

a = 3

分支判断跳出 a

判断 1

调试输出(1)

判断 2

调试输出(2)

其他

调试输出(3)

返回 0

[+]程序入口

控制台程序 示例

def 整型 入口函数()

调试输出("你好! 炫彩编程")

返回 0

窗口程序 示例

#库文件 "xcgui.lib"

#头文件 "xcgui.h"

#宏定义 SW_SHOW 5

HWINDOW hWindow=0

def 回调 整型 My_EventBtnClick(整型* pbHandled) //按钮点击事件

调试输出("按钮-关闭窗口")

*pbHandled=1

返回 0

def 整型 入口函数_窗口()

XInitXCGUI() //初始化界面库

hWindow=XWnd_Create(0,0,500,300, "xcgui-window") //创建窗口

如果 hWindow

HELE hButton=XBtn_Create(20,60,80,25,"关 闭",hWindow) //创建按钮

XBtn_SetTypeEx(hButton, button_type_close)

XEle_RegEventC(hButton,XE_BNCLICK,My_EventBtnClick) //注册事件

XWnd_AdjustLayout(hWindow) //调整布局

XWnd_ShowWindow(hWindow,SW_SHOW) //显示窗口

XRunXCGUI()

XExitXCGUI()

返回 0

数据类型

整型(int) 4字节

无符号整型(unsigned int) 4字节

短整型(short) 2字节

无符号短整型(unsigned short) 2字节

字节型(byte) 1字节

浮点型(double) 8字节

文本(字符串操作对象)

文本A(字符串操作对象,多字节编码)

指针(*) 4字节 例如: wchar_t*, int*

字符型(wchar_t) 2字节

字符型A(char) 1字节

无类型(void)

整型 type_int= 1000

短整型 type_short=100

字节型 type_byte=10

浮点型 type_float=3.14

整型 type_array_int[10]={0}

文本 type_text = "123-ABC"

调试输出("测试_数据类型 整型: ", type_int, " 大小:",sizeof(type_int))

调试输出("测试_数据类型 短整型: ", type_short, " 大小:",sizeof(type_short))

调试输出("测试_数据类型 字节型: ", type_byte, " 大小:",sizeof(type_byte))

调试输出("测试_数据类型 浮点型: ", type_float, " 大小:",sizeof(type_float))

调试输出("测试_数据类型 数组: ", type_array_int, " 大小:",sizeof(type_array_int))

调试输出("测试_数据类型 文本: ", type_text, " 大小:",sizeof(type_text))

[+]数据容器

高级数组

高级动态数组

待补充...

高级字典

待补充...

数组

整型 整型数组[10]={0} //定义10个成员的整型数组, 初始每个成员值为0

浮点型 浮点数组[10]={0}

C++容器字典 std::map

对应模块文件 map_wrap.h; 用户可修改文件对其扩展

字典 变量名

模块接口见IDE中模块

字典 变量名

字典 字典A

字典A["aaa"] = 1

字典A["bbb"] = 2

字典A["ccc"] = 3

整型 大小 = 字典A.大小() //取字典成员数量

整型 a = 字典A["aaa"] //取键"aaa" 对应的值

迭代器 迭代器_查找_a = 字典A.查找("aaa") //或者: 字典::迭代器 迭代器_查找_a = 字典A.查找("aaa")

如果 迭代器_查找_a != 字典A.空值()

调试输出("找到")

否则

调试输出("未找到")

列表循环 迭代器 迭代器项; 字典A

调试输出( 迭代器项.键, " | ", 迭代器项.值)

C++动态数组 std::vector

对应模块文件vector_wrap.h 用户可修改文件对其扩展

动态数组 变量名

模块接口见IDE中模块

动态数组 数组A;

数组A.添加项(1)

数组A.添加项(2)

数组A.添加项(3)

整型 数组大小 = 数组A.大小()

列表循环 整型 i; 数组A

调试输出(数组[i])

列表循环 整型 i; 数组A

调试输出(数组A[i])

函数 function

如果不检查参数, 声明函数时参数"..."

def 返回值 函数名(...) //IDE不检查参数; 例如当参数类型为任意型时或参数数量不固定时

def 整型 相加(整数 a, 整数 b)

返回 a+b

def 回调 整型 按钮点击事件(整型* pbHandled)

调试输出("按钮被点击")

返回 0

[+]类 class

构造函数 和 析构函数没有返回值

类 测试类

整型 _a //成员变量

def构造() //构造函数

_a = 10

def析构() //析构函数

pass //pass占位行, 没有实际意义

def 整型 Add(整型 a, 整型 b) //成员函数

返回 a+b+_a

测试类 测试类_

整型 c = 测试类_.Add(1,2)

调试输出(c)

类 大小

整型 宽度

整型 高度

大小 大小_

调试输出("宽度=", 大小_.宽度)

调试输出("高度=", 大小_.高度)

类的继承

类 CA

def无返回 Add(整型 a, 整型 b)

调试输出("CA::Add()")

类 CB 继承 CA

def 无返回 Add()

调试输出("CB::Add()")

def 整型 入口函数_窗口()

CB cb

cb.Add()

CA* ca = &cb //取地址

ca->Add(1,3)

返回 0

类虚函数

虚函数: 子类有的调用子类, 子类没有的调用父类的

子类重写虚函数可以覆盖父类的函数功能

析构函数也可以为虚函数, 好处是用基类的指针释放时自动调用子类析构函数,否则子类析构函数不会被触发

类 CA

def 虚函数 无返回 Add(整型 a, 整型 b)

调试输出("CA::Add()")

类 CB 继承 CA

def 虚函数 无返回 Add()

CA::Add() //可强制调用父类中的CA::Add()函数

调试输出("CB::Add()")

def 整型 入口函数_窗口()

CB cb

cb.Add() //调用CB类中的Add()函数

CA ca= cb //转换对象类型为CA, 因为CA是CB的基类,所以可以转换

ca.Add() //调用CB类中的Add() 函数

//因为CB类重写了CA类中的Add()函数, 所以覆盖了CA::Add()

返回 0

new delete 操作

RECT* rc=new RECT //new 对象

rc->left=10 //赋值

调试输出(rc->left) //打印输出

delete rc //删除对象

取变量地址

取普通变量地址

整型 a = 10 //定义整型变量

整型* pA = &a //取变量地址

调试输出(pA) //打印地址

调试输出(*PA) //打印值

取类变量地址

RECT rc //定义对象

RECT* pRc = &rc //取对象地址

调试输出(&rc) //打印对象地址

定义宏(内部定义宏 与 声明外部宏)

#宏定义 SW_SHOW 5

#外部宏 SW_SHOW //声明在外部文件中已经存在的宏

[+]技巧

调试输出(UNICODE编码)

UNICODE编码, 双字节 wchar_t*

调试输出("打印一行信息到输出窗口")

整型 a

文本 text="你好! 炫彩编程"

调试输出("a=",a, ", text=", text) //打印变量值

调试输出(多字节编码)

在字符串前面加字幕"A"代表多字节编码 char*

调试输出(A"打印一行信息到输出窗口")

整型 a

文本A text=A"你好! 炫彩编程"

调试输出(A"a=",a, A", text=", text) //打印变量值

占位空行 pass

def 无返回 函数名()

pass

一行写多条语句

分号";"代表后面语句不换行

冒号":"代表后面语句是子集块

整型 a = 1; 整型 b = 2 //一行写多条语句用 ; 分开

整型 c = a + b

子集块不换行写法

整型 a=10

如果 10==a : 调试输出("a==10"); 调试输出("条件成立") //将子集块写在同行

如果 10!=a : 调试输出("a!=10");

否则 : 调试输出("a==10")

多段字符串拼接

文本 text = "123""456"

"789"

//结果为:text = "123456789"

[+]扩展

包含外部头文件

#头文件 //系统头文件, 不解析文件内容

#头文件 "xcgui.h" //普通头文件, 解析文件内容

#库文件 "xcgui.lib" //静态库或动态库lib文件

可使用隐藏命令,隐藏不需要解析的代码,提高解析速度,排除无法解析的内容; 见模块封装

外部函数及类型声明

如果某个函数已存在外部代码或库中, 只需要在在*.xh文件中声明类型

例如:

声明外部函数, 参数中 "..."三个点代表不检查参数,省略掉

int sizeof(...) //声明外部函数

void Sleep(int dwMilliseconds)

声明外部类

类 RECT

类 CSize

声明外部基础类型, 或未知类型

#外部类型 HDC //声明外部定义的类型

#外部类型 HANDLE //声明外部定义的类型

调用外部库 DLL

例如: 调用炫彩界面库DLL

DLL-头文件: xcgui.h

DLL-lib文件:xcgui.lib

与C++代码混合

与C++代码混合使用方法

test.h 头文件

int add(); //声明函数

test.cpp 源文件

#include "common__.h" //包含预编译

int add()

{

OutputDebugString(L"123\n");

return 99;

}

或者在*.xh文件中声明外部函数

在*.xc源文件中 包含c++ 头文件和源文件, 调用c++代码中的add()函数

嵌入C++代码

#code

此处嵌入C++代码

#end_code

[+]模块

模块默认位置: IDE文件夹\data\VC\XC\

模块文件:module_*.h, module_开头的(*.h)文件为模块文件

IDE启动时, 自动搜索此目录下的模块文件

模块中只列出类的公开成员(public)

可使用隐藏命令, 隐藏不需要解析的代码, 排除无法解决的代码, 提高解析速度

可使用分组命令, 对全局函数进行分组, 便于浏览管理

模块选择对话框

项目视图->右键菜单->选择模块

选择当前项目中使用的模块

模块浏览器

查看模块中的接口及说明

调用模块

项目视图->右键菜单->选择模块, 勾选模块 "字符串操作" module_test.h

def 整型 测试模块()

字符串类 字符串="abc"

字符串.增加字符串("123")

整型 位置 = 字符串.查找("123")

返回 字符串.获取大小()

[+]模块封装

参考示例: IDE中 module_base.h 模块包装; 位置: IDE文件夹\data\VC\XC\module_base.h

别名

声明(类, 变量, 函数, 函数参数名) 别名, 以便在IDE中使用中文名称调用

//@rename 别名(别名, 别名, ...)

声明

对已存在的(类, 函数)别名, 使用多行注释包裹声明代码

/*@声明

代码...

*/

包含CPP文件

在头文件中声明包含cpp文件,(加入编译文件列表)

如果直接在(.h)文件中包含cpp文件, 当多个文件中包含该(.h)文件时会造成重复的实现, 例如:函数已在(*.obj)模块中已存在,造成重复

所以这里采用特殊方法声明要包含的cpp文件, IDE编译代码时, 自动连接cpp文件,避免重复的实现

/*@声明

#src "pugixml.cpp" //例如包含cpp文件 pugixml.cpp

*/

包含lib文件

/*@声明

#lib "xcgui.lib" //包含lib文件

*/

模块文件说明信息

在模块文件开始位置加入模块详情, 例如:

//@模块名称 炫彩界面库-c接口

//@版本 1.0

//@日期 2020-10-23

//@作者 XCGUI

//@模块备注 炫彩界面库-c接口

// 备注换行

函数参数说明

//@备注 两个数相加

//@参数 a 输入一个整数

//@参数 b 输入一个整数

//@返回 返回a+b结果

//@别名 相加(整型, 整型)

int Add(int a, int b)

{

return a+b;

}

隐藏代码

//@隐藏{

此处的代码不会被解析, 跳过

//@隐藏}

分组

//@分组{ 组名称

组内代码, 例如: 类, 全局变量, 全局函数, 结构体, 枚举, 宏

//@分组}

#智能指针

此接口宏是为了自动模拟智能指针操作,减少重复工作, 手动模拟请看后面章节

模拟C++ 智能指针接口, 默认模拟的接口不检查参数(为了适应更多接口变化)

//假如模拟下面的智能指针为例

#智能指针 CefRefPtr CefBrowserPtr

//CefRefPtr 智能指针类

//CefBrowser 包装的对象

//CefBrowserPtr 别名类

//那么T为CefBrowser*

//默认自动模拟以下接口, 并且继承CefRefPtr中的接口,

//如果没有解析CefRefPtr, 可以模拟此类及其接口

T* get() //CefBrowser* get()

addRef()

addref()

AddRef()

Release()

release()

T* operator->()

//CefRefPtr 中的接口

用法示例

#智能指针 CefRefPtr CefBrowserPtr //模拟智能指针接口, 用法与C++中一样

CefBrowserPtr m_cefBrowser //定义智能指针变量

m_cefBrowser->GetHost() //调用CefBrowser接口GetHost()

CefBrowser* pCefBrowser = m_cefBrowser.get() //调用智能指针自身接口

#智能指针_仅声明

仅声明智能指针接口, 例如C++源码中已经定义了智能指针类型, 仅声明接口即可

.h文件

//假如已经定义智能指针类型

typedef CHPSocketPtr CTcpClientPtr;

.xc文件

#智能指针_仅声明 CHPSocketPtr CHttpClientPtr //仅声明接口, 避免造成重复

模拟-模板继承

解析C++文件时, 不支持模板解析, 所以需要模拟接口

//test.h

//C++ 原文件

//假如 T1 是 class CA

//假如 T2 是 class CB

template

class CMyClass : public T, T2 //CMyClass 继承类 T1 T2, 拥有T1和T2 的全部接口

{

};

typedef CMyClass CMyClassD;

//---------模拟封装接口------------

/*@声明

//@备注 自定义双接口类

//@别名 测试类

class CMyClassD : public CA, CB

{

};

*/

//test.xc

//测试模块

CMyClassD myClass //继承 CA, CB成员 CMyClass myClass

myClass.CA成员 //可调用CA成员

myClass.CB成员 //可调用CB成员

模拟-模板智能指针

假如是智能指针, 需要模拟智能指针接口 和 重载操作符继承接口

//text.h

//C++ 原文件

//假如 T 是 class CA

template

class CPtr

{

public:

T* operator->();

void operator=(T* pObj){ m_pObj = pObj;}

T* Attach(CMyClass *pClass);

T* Detach();

private:

* m_pObj;

}

typedef CPtrCaPtr;

class CA

{

public:

int Add(int a, int b){ return a+b;}

};

//---------模拟封装接口------------

/*@声明

class CaPtr

{

public:

CA* operator->(); //模拟此接口 可以调用CA成员

CA* Attach(CA* pObj);

CA* Detach();

private:

T* m_pObj;

};

*/

//test.xc

//测试模块

CaPtr ptr = new CA // CPtr ptr = new CA

ptr->Add(1,2) //调用 CA成员函数

ptr.Detach() //调用 智能指针函数

模块封装示例

//假如 CStringBase 类已存在,原型如下

class CStringBase

{

public:

int GetSize();

const wchar_t* GetString();

void AddString(const wchar_t* pString)

};

模块文件名: module_test.h

将此文件放入目录 IDE文件夹\data\VC\XC\module_test.h

//module_test.h

//定义CMyString类 继承CStringBase类, 并且对基类CStringBase中的函数别名

//CMyString 类中实现查找功能函数 Find(), 添加成员变量 m_status

#ifndef MY_TEST_WRAP_H

#define MY_TEST_WRAP_H

//@模块名称 字符串操作

//@版本 1.0

//@日期 2020-10-23

//@作者 XCGUI

//@模块备注 字符串操作示例模块,

//此示例仅供参考

/*@声明

#src "module_text.cpp" //包含cpp文件

#lib "xcgui.lib" //如果用到礼拜文件

*/

//@别名 字符串类

class CMyString : public CStringBase

{

public:

/*@声明 //此处是对已存在的函数 声明

//@别名 获取大小()

int GetSize()

//@别名 获取字符串指针()

const wchar_t* GetString();

//@备注 增加字符串到末尾

//@参数 pString 要添加的字符串

//@返回 无返回值

//@别名 增加字符串(字符串)

void AddString(const wchar_t* pString)

*/

//@别名 查找(字符串)

int Find(const wchar_t* pString)

{

int ret = -1;

//查找代码...

return ret;

}

//@别名 状态

int m_status; //状态

};

#endif

[+]炫彩编程 - IDE -界面库

左侧的函数列表, 当保存代码时更新

新建项目(炫彩编程)

UI布局文件生成代码类

UI生成事件代码

项目属性-Debug/Release

设置Debug\Release编译选项

资源文件 resource.rc

新建项目 勾选炫彩编程, 在项目文件夹下,将生成RC资源文件和程序图标

用记事本工具打开编辑文件 resource.rc

可添加 图标, 版权 等内容

默认第一个图标为exe文件图标

如果项目目录下没有资源文件,那么编译时忽略rc资源, 资源文件固定名称为 [resource.rc]

用VS修改RC资源文件

如果不会编辑RC文件, 可以用VS修改

注意: vs中rc资源文件是包含 "resource.h" 头文件, 因为炫彩不需要,所以没有

自己把这一行代码注释取消,随便新建个 "resource.h"文件, 不然VS会提示找不到"resource.h"

转到定义

在变量上按鼠标右键弹出菜单->转到定义, 跳转到指定文件行

搜索

点击搜索按钮, 输入搜索内容, 查找结果在输出窗格显示

调试 IDE

F5: 编译和调试

F7: 编译

F9:下断点

F10: 单步

F11: 步入

python 漂亮界面demo_demo相关推荐

  1. python 漂亮界面demo_在这个什么都看脸的时代,如何用 GUI 提高 python 程序的颜值?...

    0.前言 有不少初学者会问,Python 写的程序看起来好丑啊,只能在那个黑黑的框里运行吗?隔壁家的 JS 好像挺好看的,还能有酷炫效果呢-- 其实呢,术业有专攻,Python 擅长的领域在后台服务器 ...

  2. python漂亮界面 数独游戏源代码_使用Python编写数独游戏自动出题程序

    原标题:使用Python编写数独游戏自动出题程序 数独是一个很好玩的游戏,可以锻炼推理能力.下面的代码可以自动生成数独游戏题目. fromrandom importshuffle, randrange ...

  3. python优秀界面demo_python漂亮界面demo-女性时尚流行美容健康娱乐mv-ida网

    女性时尚流行美容健康娱乐mv-ida网 mvida时尚娱乐网 首页 美容 护肤 化妆技巧 发型 服饰 健康 情感 美体 美食 娱乐 明星八卦 首页  > 高级搜索 python 读写/追加exc ...

  4. python小技巧大应用--基础实用漂亮界面(无边框,圆角,可拖拽)

    这回要实现一个漂亮的基础界面,要具有如下特色: 无边框,圆角,漂亮的背景,可拖拽移动,具有最小化,关闭按钮,界面与代码分离,支持qss 先展示一下最后的效果: 那就开始工作吧: 1.通过Qt Desi ...

  5. 基于python的界面自动化测试-基于Python语言的自动化测试实战第二章(上)

    原标题:基于Python语言的自动化测试实战第二章(上) 测试环境搭建 2.1 Windows 下的环境搭建 如果想要学习一门编程语言,对于新手来说只需到其官方网站上去下载最新版本安装即可,但对于想要 ...

  6. python使用界面-推荐8款常用的Python GUI图形界面开发框架

    作为Python开发者,你迟早都会用到图形用户界面来开发应用.本文将推荐一些 Python GUI 框架,希望对你有所帮助,如果你有其他更好的选择,欢迎在评论区留言. Python 的 UI 开发工具 ...

  7. python简单编程例子-中文方便就用中文编程!Python图形界面开发实例

    原标题:中文方便就用中文编程!Python图形界面开发实例 之前做的一个Python小程序,功能很简单,面对用户群也很窄,是五笔编码编.校人员使用的五笔编码编辑器. 这样的"周末" ...

  8. python可视化窗口编程-Python可视化界面编程入门

    Python可视化界面编程入门具体实现代码如所示: (1)普通可视化界面编程代码入门: import sys from PyQt5.QtWidgets import QWidget,QApplicat ...

  9. python软件界面-python软件界面介绍(python软件介绍)

    python软件界面介绍 1.接口初始化 当我们使用pycharm工具时,我们将遇到的第一个问题是,在进行各种配置后界面变得混乱时,我们该怎么办?我们应该还原,那么如何还原初始设置? 尽管此工具是从e ...

最新文章

  1. 编程之法----面试和算法心得
  2. Golang mysql数据库
  3. python读取txt文件并批量写入不同的excel
  4. 【Linux】一步一步学Linux——users命令(101)
  5. luogu4267 TamingtheHerd (dp)
  6. Socket网络编程--小小网盘程序(3)
  7. 2022. 将一维数组转变成二维数组
  8. 消息队列解耦是骗小孩儿的
  9. 要想深入理解mysql索引?这16个点你必须要了解!
  10. POJ 2763 Housewife Wind【LCA_RMQ+树状数组】
  11. 运用“异或”对原文加密,并解密
  12. android 7相机拍照功能介绍,android7 相机拍照流程
  13. 递归系列——递归树与函数记忆化
  14. 区块链100问:区块链到底能不能篡改?
  15. mongodb,Mysql,redis基础教程
  16. 萤火虫算法matlab实现,萤火虫算法,matlab代码.doc
  17. 数据线CE测试标准 准备资料
  18. AVAudioPlayer常用属性
  19. OD使用教程 调试篇01
  20. Python项目实战 3.4:异步消息队列.Celery+RabbitMQ

热门文章

  1. 三元乙丙橡胶复合行业调研报告 - 市场现状分析与发展前景预测
  2. 从HTTP请求中获取客户IP地址
  3. B.FRIENDit壁虎忍者悬浮式黑轴机械键盘 台式电脑笔记本外接有线游戏键盘IGK2-ST白色套装
  4. 13.Ubuntu20.04使用网线连接路由器无法上网
  5. 浅谈多回路故障电弧探测器在某高校项目上的应用
  6. 响铃:竞争战略视角下,品牌打造的假象与真相
  7. 学计算机专业用微软和华为xpro,全新苹果MacBook Pro对比华为X Pro 两者到底选谁?...
  8. android 游戏分辨率是多少合适,android – 多屏幕分辨率/宽高比(游戏)
  9. Android手机中热点配置文件保存路径
  10. Linux 5.15将修复早期补丁让软盘驱动器设备出错问题