炫彩编程手册

更新日期:2021-04-22

 

 

简介

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


特性

环境安装

下载IDE

炫彩QQ群共享下载, 群号:1653999 验证码:XCGUI

环境设置

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

将 "data\VC\VC14.0-Debug-DLL\" 和"\data\VC\XC-Module\dll" 目录下DLL文件复制到: "C:\Windows\" 或者"C:\Windows\System32\" 或者 添加到环境变量PATH里 (如果已安装了VC14 可忽略)

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

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

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

数据类型

 

 

运算符

+
-
*
/
=等于
%求余
++自增1
--1 自减1
+=加等于
-=减等于
==等于
!=不等于
<小于
>大于
<=小于等于
>=大于等于
&&逻辑与
||逻辑或
!取反
&位与
|位或
^异或
<<位左移
>>位右移

注释

单行注释

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

快捷键

F5: 编译和调试 F7: 编译 F9:下断点 F10: 单步 F11: 步入

TAB: 缩进 TAB + SHIFT: 减少缩进 "/": 注释/取消注释 Ctrl + G: 跳转到指定行 Ctrl + F: 搜索和替换

区块操作

选择多行内容 鼠标右键菜单: ->注释 ->增加缩进 ->取消缩进

[+]流程控制

如果...否则 if...else
循环 while
变量循环 for
计次循环 for
列表循环 for

//普通数组循环

//动态数组循环

//字典循环

分支判断 switch

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

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

跳出
继续

[+]程序入口

控制台程序 示例
窗口程序 示例

[+]数据容器

高级数组

高级动态数组 待补充...

高级字典

待补充...

数组
C++容器字典 std::map

对应模块文件 map_wrap.h; 用户可修改文件对其扩展 字典<键,值> 变量名 模块接口见IDE中模块

C++动态数组 std::vector

对应模块文件vector_wrap.h 用户可修改文件对其扩展 动态数组<类型> 变量名 模块接口见IDE中模块

函数 function

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

"def" 也可以使用中文 "函数"

[+]类 class

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

类的继承
类虚函数

虚函数: 子类有的调用子类, 子类没有的调用父类的 子类重写虚函数可以覆盖父类的函数功能 析构函数也可以为虚函数, 好处是用基类的指针释放时自动调用子类析构函数,否则子类析构函数不会被触发

结构体 struct

 

new delete 操作

取变量地址

取普通变量地址

取类变量地址

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

[+]技巧

调试输出(UNICODE编码)

UNICODE编码, 双字节 wchar_t*

调试输出(多字节编码)

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

占位空行 pass
一行写多条语句

分号";"代表后面语句不换行 冒号":"代表后面语句是子集块

子集块不换行写法
多段字符串拼接

[+]扩展

包含外部头文件

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

外部函数及类型声明

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

例如:

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

声明外部类

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

调用外部库 DLL

例如: 调用炫彩界面库DLL DLL-头文件: xcgui.h DLL-lib文件:xcgui.lib

与C++代码混合

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

test.h 头文件

test.cpp 源文件

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

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

 

嵌入C++代码

如果与函数对齐, 作用域为函数内

[+]模块

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

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

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

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

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

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

 

模块选择对话框

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

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

模块浏览器

查看模块中的接口及说明

调用模块

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

[+]模块封装

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

utf-8编码

别名

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

声明

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

依赖

例如 "炫彩界面库-类" 依赖 "炫彩界面库C(module_xcgui.h)"

 

包含CPP文件

在头文件中声明包含cpp文件,(加入编译文件列表) 如果直接在(.h)文件中包含cpp文件, 当多个文件中包含该(.h)文件时会造成重复的实现, 例如:函数已在(*.obj)模块中已存在,造成重复 所以这里采用特殊方法声明要包含的cpp文件, IDE编译代码时, 自动连接cpp文件,避免重复的实现

包含lib文件
模块文件说明信息

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

函数参数说明
隐藏代码

 

分组
重载操作符 operator

当前可解析操作符类型如下:

 

#智能指针

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

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

用法示例

 

#智能指针_仅声明

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

 

 

模拟-模板继承

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

 

模拟-模板智能指针

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

 

 

模块封装示例

模块文件名: module_test.h 将此文件放入目录 IDE文件夹\data\VC\XC-Module\module_test.h

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

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

涉及到以下窗格: 函数列表 断点列表 调用堆栈 局部变量 监视 调试输出 搜索和替换 查找引用 模块视图

 

 

新建项目(炫彩编程)

 

UI布局文件生成代码类

UI生成事件代码

项目属性-Debug/Release

设置Debug\Release编译选项 配置属性

 

选择类型 可以设置编译exe,动态库DLL, 静态库lib

新建按钮, 可从现有配置中复制新的配置修改

新建配置可保存为全局配置,或当前项目配置

 

导出动态库DLL

项目属性 -> 炫彩编程 -> 类型: 动态库(.dll)

在要导出的函数前面加上 "导出"

 

导出静态库LIB

项目属性 -> 炫彩编程 -> 类型: 静态库(.lib)

 

事件助手

例如: 按钮.注册事件->事件助手 , 弹出[事件助手] 选择对应事件, 回车生成事件代码

搜索替换

Ctrl + F 快捷键[搜索和替换]

结果输出在 [搜索和替换] 窗格中

 

查找引用

在函数上鼠标 右键菜单->查找所有引用

结果输出在 [查找引用] 窗格内

 

转到定义

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

 

跳转到指定行

Ctrl + G 快捷键

 

插入(函数 变量 类)

代码编辑器鼠标右键 菜单->插入->

 

资源文件 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: 步入