<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[星辰大海]]></title><description><![CDATA[写博客为记录学习工作中的收获]]></description><link>https://blog.youkuaiyun.com/mingfengshan</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; mingfengshan]]></copyright><item><title><![CDATA[Qt中pro、pri等文件的语法介绍]]></title><link>https://blog.youkuaiyun.com/mingfengshan/article/details/107294792</link><guid>https://blog.youkuaiyun.com/mingfengshan/article/details/107294792</guid><author>mingfengshan</author><pubDate>Sun, 19 Jul 2020 14:08:29 +0800</pubDate><description><![CDATA[借鉴连接
https://blog.youkuaiyun.com/Eric_Coding/article/details/52609004
换行
文件中换行是用\符号实现，在下列的语法中，若想要添加多个参数，用空格隔开或用\换行实现
QT  +=  core gui

或
QT  +=  core \
        gui

注释
从#开始，到此行结束
添加QT内置库
语法：QT +=添加Qt中相应的库即可
QT  +=  core gui

另外，若不需要用到QT的界面，也可以写成如下形式：
QT  -=  gui]]></description><category></category></item><item><title><![CDATA[QT工程导出项目和模块跟目录]]></title><link>https://blog.youkuaiyun.com/mingfengshan/article/details/107444472</link><guid>https://blog.youkuaiyun.com/mingfengshan/article/details/107444472</guid><author>mingfengshan</author><pubDate>Sun, 19 Jul 2020 13:59:14 +0800</pubDate><description><![CDATA[导出工程根目录
# locate to the project root
defineReplace(findProjectRoot) {
    projroot = $$1
    for (ever) {
        if (exists($$projroot/PROJECT)) {
            return ($$projroot)
        }
        if (equals(projroot, "/")) {
            return ($$1)
    ]]></description><category></category></item><item><title><![CDATA[QT工程基本文件说明]]></title><link>https://blog.youkuaiyun.com/mingfengshan/article/details/107294715</link><guid>https://blog.youkuaiyun.com/mingfengshan/article/details/107294715</guid><author>mingfengshan</author><pubDate>Sun, 19 Jul 2020 13:37:33 +0800</pubDate><description><![CDATA[*.pro文件
这是Qt工程管理文件，是统筹整个项目的重要文件
*.pri文件
'i’是包含(include)的首字母。类似于C、C++中的头文件，反正就是我们可以把pro 文件内的一部分单独放到一个.pri 文件内，然后包含进来。在工程文件.pro里添加include (PATH/*.pri)（PATH为pri文件的路径）就可以引用进来了。
include($$PWD/test/test.pri)


...]]></description><category></category></item><item><title><![CDATA[QT之全局忽略编译警告QMAKE_CXXFLAGS]]></title><link>https://blog.youkuaiyun.com/mingfengshan/article/details/107271061</link><guid>https://blog.youkuaiyun.com/mingfengshan/article/details/107271061</guid><author>mingfengshan</author><pubDate>Sun, 19 Jul 2020 13:35:27 +0800</pubDate><description><![CDATA[全局忽略编译警告QMAKE_CXXFLAGS

]]></description><category></category></item><item><title><![CDATA[后台开发阅读笔记——HTTP协议]]></title><link>https://blog.youkuaiyun.com/mingfengshan/article/details/84929785</link><guid>https://blog.youkuaiyun.com/mingfengshan/article/details/84929785</guid><author>mingfengshan</author><pubDate>Sun, 09 Dec 2018 17:21:55 +0800</pubDate><description><![CDATA[HTTP是一种协议，常用的有QQ，迅雷等软件。但是一个不安全的协议。
HTTPS是以安全为目标的HTTP通道，安全基础是TLS（SSL的升级版）。
CGI接口：是一个web服务器提供信息服务的标准接口。通过CGI接口Web服务器就能获得客户端提交的信息，转交给服务器端的CGI程序进行处理，最后返回结果给客户端。由两部分组成，HTML网页和运行在服务器上的CGI程序。
CGI环境变量在CGI程序启动...]]></description><category></category></item><item><title><![CDATA[后台开发阅读笔记——进程间通信]]></title><link>https://blog.youkuaiyun.com/mingfengshan/article/details/84929586</link><guid>https://blog.youkuaiyun.com/mingfengshan/article/details/84929586</guid><author>mingfengshan</author><pubDate>Sun, 09 Dec 2018 17:06:48 +0800</pubDate><description><![CDATA[通信方法有：管道，消息队列，共享内存，信号量，套接字等。
管道：一种两个进程间单向通信的机制。特点如下：数据只能又一个进程流向另一个进程（一个读管道，一个写管道）。若要进行双工通信，则需要建立两个管道。管道只能用于父子进程或兄弟进程间通信，即只能用于具有亲缘关系的进程间通信。
管道由pipe（int fd[2]）函数创建。管道两端可分别用描述字fd[0]以及fd[1]来描述。注意管道的两端是固定了...]]></description><category></category></item><item><title><![CDATA[后台开发阅读笔记——进程]]></title><link>https://blog.youkuaiyun.com/mingfengshan/article/details/84929356</link><guid>https://blog.youkuaiyun.com/mingfengshan/article/details/84929356</guid><author>mingfengshan</author><pubDate>Sun, 09 Dec 2018 16:47:12 +0800</pubDate><description><![CDATA[进程组成：代码段，数据段，堆栈段。
代码段是用于存放程序代码的数据。数据段则存放程序的全局变量，常量和静态变量。堆栈段用于函数调用。存放着函数的参数，函数内部定义的局部变量。堆栈段还包括了进程控制块（PCB），PCB是进程存在的唯一标识。
孤儿进程：是指一个父进程退出后，而它的一个或多个子进程将成为孤儿进程。孤儿进程被init进程（进程号1）所收养，并对它们完成状态的收集工作。
僵尸进程：是指一个...]]></description><category></category></item><item><title><![CDATA[后台开发阅读笔记——多线程]]></title><link>https://blog.youkuaiyun.com/mingfengshan/article/details/84929166</link><guid>https://blog.youkuaiyun.com/mingfengshan/article/details/84929166</guid><author>mingfengshan</author><pubDate>Sun, 09 Dec 2018 16:30:42 +0800</pubDate><description><![CDATA[多线程就是允许一个进程内存在多个控制权，以便让多个函数同时处于激发状态，从而让多个函数的操作同时运行。为了实现多线程，则必须绕开栈的限制，需要为这个线程建一个新的栈，每个栈对应一个线程。当某个栈执行到全部弹出时，对应线程完成任务并结束。所以，多线程的进程在内存中有多个栈，多个栈之间以一定的空白区域隔开，以备栈的增长。每个线程可调用自己栈下最下方的帧中的参数和变量，并与其它线程共享内存中的Text，...]]></description><category></category></item><item><title><![CDATA[后台开发阅读笔记——TCP/IP网络模型]]></title><link>https://blog.youkuaiyun.com/mingfengshan/article/details/84099529</link><guid>https://blog.youkuaiyun.com/mingfengshan/article/details/84099529</guid><author>mingfengshan</author><pubDate>Sat, 17 Nov 2018 08:39:57 +0800</pubDate><description><![CDATA[TCP/IP网络模型分为应用层，传输层，网间层，网络接口层。
TCP提供面向有连接的，可靠的服务。IP提供面向无连接的，不可靠的服务。
TCP通过3次握手建立连接，4次挥手取消连接，通过超市重传，滑动窗口，拥塞控制维护连接，保证服务可靠。
拥塞控制有4个核心算法：慢开始，拥塞避免，快速重传，快速恢复。

...]]></description><category></category></item><item><title><![CDATA[后台开发阅读笔记——编译与链接]]></title><link>https://blog.youkuaiyun.com/mingfengshan/article/details/84099011</link><guid>https://blog.youkuaiyun.com/mingfengshan/article/details/84099011</guid><author>mingfengshan</author><pubDate>Thu, 15 Nov 2018 09:50:29 +0800</pubDate><description><![CDATA[编译与链接的过程可以分解为4个步骤，分别是预处理，编译，汇编和链接。
1、预处理过程主要处理那些源代码文件只能够以“#”开始的预编译指令。比如#include，#define等。
1）、将所有#define删除，并且展开所有宏定义。#undef则取消对某个宏的定义，使以后该串的出现不再被替换。
2）、处理所有条件预编译指令，比如#if，#ifdef，#elif，#else，#endif。
3）、处...]]></description><category></category></item><item><title><![CDATA[后台开发阅读笔记——STL之vector，map]]></title><link>https://blog.youkuaiyun.com/mingfengshan/article/details/83448528</link><guid>https://blog.youkuaiyun.com/mingfengshan/article/details/83448528</guid><author>mingfengshan</author><pubDate>Sat, 27 Oct 2018 18:29:18 +0800</pubDate><description><![CDATA[vector的优点：
（1）、可以使用下标访问个别元素。
（2）、迭代器可以按照不同的方式遍历容器。
（3）、可以在容器的末尾增加或删除元素。
如果有大量数据需要进行push_back()，应当使用reserve()函数提前设定其容量大小，否则导致多次扩容导致效率低下。
map：
map的内部数据组织，是自建一颗红黑树（一种非严格意义上的平衡二叉树），具有对数据自动排序的功能。
map的插入方式有...]]></description><category></category></item><item><title><![CDATA[后台开发阅读笔记——STL（标准模板库）的使用之string类实现]]></title><link>https://blog.youkuaiyun.com/mingfengshan/article/details/83448352</link><guid>https://blog.youkuaiyun.com/mingfengshan/article/details/83448352</guid><author>mingfengshan</author><pubDate>Sat, 27 Oct 2018 18:02:08 +0800</pubDate><description><![CDATA[string类的实现：
class String
{
public:
	String(const char *str=null);
	String(const String &amp;amp;amp;other);
	~String();
	String &amp;amp;amp;operator =(const String &amp;amp;amp;other);
	String &amp;amp;amp;operator +(const String &amp;amp;...]]></description><category></category></item><item><title><![CDATA[后台开发阅读笔记——面向对象]]></title><link>https://blog.youkuaiyun.com/mingfengshan/article/details/83448107</link><guid>https://blog.youkuaiyun.com/mingfengshan/article/details/83448107</guid><author>mingfengshan</author><pubDate>Sat, 27 Oct 2018 17:32:41 +0800</pubDate><description><![CDATA[类是对象的抽象，对象是类的实例。
类的封装性：
把数据和这些数据有关的操作封装在一个类里。还定义了私有，公有，和受保护三种基本访问权限。解决了程序的可扩展性。
析构函数的执行时机：
（1）、在函数中定义了一个对象，当函数调用结束时，对象会被释放，且在对象释放前会自动执行析构函数。
（2）、static局部对象在函数调用结束时对象不释放，所以也不执行析构函数，只有在main函数结束或调用exit函数...]]></description><category></category></item><item><title><![CDATA[后台开发阅读笔记——第一个C++程序]]></title><link>https://blog.youkuaiyun.com/mingfengshan/article/details/83447534</link><guid>https://blog.youkuaiyun.com/mingfengshan/article/details/83447534</guid><author>mingfengshan</author><pubDate>Sat, 27 Oct 2018 16:39:12 +0800</pubDate><description><![CDATA[#include &amp;lt;&amp;gt;与#include &quot;&quot;的区别：
前者常用来包含系统提供的头文件，编译器会到保存系统标准头文件的位置查找头文件；后者常用于包括程序员自己编号的头文件，用这种格式时，编译器先查找当前目录是否有指定名称的头文件，然后从标准头目录中进行查找。
函数模板：
定义格式为tmplate。如下：
#include &amp;lt;iostream&amp;gt;
using namespace...]]></description><category></category></item><item><title><![CDATA[后台开发阅读笔记——服务器与客户端]]></title><link>https://blog.youkuaiyun.com/mingfengshan/article/details/83447142</link><guid>https://blog.youkuaiyun.com/mingfengshan/article/details/83447142</guid><author>mingfengshan</author><pubDate>Sat, 27 Oct 2018 16:09:02 +0800</pubDate><description><![CDATA[服务器：
服务器收到客户端发来的请求数据，解析请求数据后处理，最后返回结果。接收请求的方式可以是通过TCP请求包，也可以是HTTP请求包（也是TCP连接）。若是TCP请求，常见的为二进制格式；若是HTTP方式，请求包格式一般是JSON或者XML格式，或是自定义的ASCII文本。
客户端：
向服务器发起请求，并接收服务器回复的一方。只要能够发起TCP或者HTTP连接的都可以作为客户端，可以是浏览器，...]]></description><category></category></item><item><title><![CDATA[C++零散知识]]></title><link>https://blog.youkuaiyun.com/mingfengshan/article/details/79246708</link><guid>https://blog.youkuaiyun.com/mingfengshan/article/details/79246708</guid><author>mingfengshan</author><pubDate>Sat, 03 Feb 2018 14:14:36 +0800</pubDate><description><![CDATA[1、volatile关键字： 
提醒编译器它后面所定义的变量随时都有可能改变，因此编译后的程序每次需要存储或读取这个变量的时候，都会直接从变量地址中读取数据。如果没有volatile关键字，则编译器可能优化读取和存储，可能暂时使用寄存器中的值，如果这个变量由别的程序更新了的话，将出现不一致的现象。2、new关键字： 
new 关键字创建对象时，对于内置类型：加括号会初始化，不加括号不初始化；对于自定]]></description><category></category></item><item><title><![CDATA[QT零散知识]]></title><link>https://blog.youkuaiyun.com/mingfengshan/article/details/79246453</link><guid>https://blog.youkuaiyun.com/mingfengshan/article/details/79246453</guid><author>mingfengshan</author><pubDate>Sat, 03 Feb 2018 13:37:48 +0800</pubDate><description><![CDATA[1、设置中文环境： 
方法(1)： 
    #include  
    QTextCodec *codec = QTextCodec::codecForName(“GBK”); 
    QTextCodec::setCodecForTr(codec); 
    QTextCodec::setCodecForLocale(codec); 
    QTextCodec::setCodecFo]]></description><category></category></item><item><title><![CDATA[QWT的使用(qt5.10、msvc2017、qwt6.1.3)]]></title><link>https://blog.youkuaiyun.com/mingfengshan/article/details/78933145</link><guid>https://blog.youkuaiyun.com/mingfengshan/article/details/78933145</guid><author>mingfengshan</author><pubDate>Fri, 29 Dec 2017 16:48:08 +0800</pubDate><description><![CDATA[QWT的使用(qt5.10、msvc2017、qwt6.1.3) 
转载：http://blog.youkuaiyun.com/czyt1988/article/details/11999985 
如果发现编译成功后，也复制了dll和lib文件到qt的安装目录下的相应文件下，但designer中还是没有qwt控件。就请看看下面这篇文章，主要是重新下载个64位的qt creator然后编译引用。链接：http:]]></description><category></category></item><item><title><![CDATA[初识CGI]]></title><link>https://blog.youkuaiyun.com/mingfengshan/article/details/77658219</link><guid>https://blog.youkuaiyun.com/mingfengshan/article/details/77658219</guid><author>mingfengshan</author><pubDate>Mon, 28 Aug 2017 22:12:53 +0800</pubDate><description><![CDATA[原文连接：http://blog.youkuaiyun.com/kaloha3/article/details/8548027]]></description><category></category></item><item><title><![CDATA[好玩的CMD命令行]]></title><link>https://blog.youkuaiyun.com/mingfengshan/article/details/77658153</link><guid>https://blog.youkuaiyun.com/mingfengshan/article/details/77658153</guid><author>mingfengshan</author><pubDate>Mon, 28 Aug 2017 22:05:54 +0800</pubDate><description><![CDATA[原文链接：http://kids.codepku.com/article/73]]></description><category></category></item></channel></rss>