- 博客(176)
- 资源 (23)
- 收藏
- 关注
原创 Markdown 图床 工具
Markdown图床工具的选择如果你经常用Markdown写文章,那么你一定会遇到一个绕不开的问题:图片的插入虽然各种主流的markdown编辑器都支持本地图片的插入,但是除非你导出为pdf或者word格式。否则,只要改动了图片在本地的位置,这个图就会挂掉,并且在现在移动办公的年代,去哪都得拿个电脑使用起来非常不方便为了解决这个问题,一般需要图床来解决。图床简单理解就是一个存放你图片的云盘,图片上传到云端后,图床会给你生成一个url,在markdown编辑器插入这个url,就可以显示图片了。今天
2021-02-17 15:45:18
343
原创 JavaScript简介
JavaScript简介使用JavaScript的4种方法屏蔽JavaScript代码JavaScript基本语法JavaScript简介JavaScript 与 Java 是两种完全不同的语言,无论在概念还是设计上脚本语言轻量级的编程语言。可插入 HTML 页面的编程代码。插入 HTML 页面后,可由所有的现代浏览器执行。很容易学习。...
2018-08-07 22:22:38
275
原创 QSS小样仿WIN7渐变图标
border-width: 1px;font: 75 10pt "微软雅黑";border-style: solid;border-color:transparent;color: rgb(255, 255, 255);border-left-color: qradialgradient(spread:pad, cx:0.5, cy:0.5, radius:0.5, fx:0.5, fy
2016-02-15 16:31:21
1791
转载 敏捷开发之Scrum扫盲篇
现在敏捷开发是越来越火了,人人都在谈敏捷,人人都在学习Scrum和XP... 为了不落后他人,于是我也开始学习Scrum,今天主要是对我最近阅读的相关资料,根据自己的理解,用自己的话来讲述Scrum中的各个环节,主要目的有两个,一个是进行知识的总结,另外一个是觉得网上很多学习资料的讲述方式让初学者不太容易理解;所以我决定写一篇扫盲性的博文,同时试着也与园内的朋友一起分享交流一下,希
2015-01-29 15:47:40
675
原创 C++线程安全的单例模式实现
Mutex取绝于平台。。。注意:两次instance == null的判断不可少。才能保证多线程安全,这种方法也叫Double-Check Locking(双重锁定)
2015-01-10 16:31:11
1174
原创 在一个字符串中找到第一个只出现三次的字符(如accbcabbbdddbb中第一个只出现三次的字符是c)
//没有找到返回-1,找到返回找到的字符char FindFirst(char* str){#define MAX_CHAR_NUM 128 int Harsh[MAX_CHAR_NUM] = {0}; char FisrtAppearPos[MAX_CHAR_NUM]; memset(FisrtAppearPos,-1,sizeof(FisrtAppearPos)); for (
2014-10-30 08:41:28
1814
原创 QSlider进度条
QSlider::groove:horizontal {\nborder: none;\nheight: 3px;\n\n}\n\nQSlider::sub-page:horizontal {\nbackground: qlineargradient(x1: 0.3, y1: 0, x2: 1, y2: 0,\n stop: 0 #00ffec, stop: 1 #f9ff00);\nhei
2014-09-13 17:44:32
2842
转载 数字证书原理
文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的出现所起的作用。接着对数字证书做一个详细的解释,并讨论一下windows中数字证书的管理,最后演示使用makecert生成数字证书。如果发现文中有错误的地方,或者有什么地方说得不够清楚,欢迎指出!1、基础知识这部分内容主要解释一些概念和术语,最好是先
2014-09-13 15:33:58
797
原创 统计文件内容行数
#include "windows.h"#include "iostream"#include "fstream"#include "string"#include #include "time.h"using namespace std;long long gFileCnt = 0;long long gFilesLine = 0;const char* gFileExN
2014-09-03 14:40:51
895
原创 动态创建
#ifndef _DYN_CREATE_H_#define _DYN_CREATE_H_using namespace std;#include "map"#include typedef void* (*FUNC)(void);class DynamicCreateObj{public:static void* CreateObject(con
2014-08-16 15:22:57
614
原创 sizeof举例,这回全了
#include "iostream"using namespace std;#pragma pack(4)/* 4字节对齐 (1) struct{ short a; short b; short c;}A; sizeof(A) = 6 (2) struct { long a; short b;}A; sizeof(A) = 8 (3) struct A{ short a;
2014-08-14 13:35:01
875
转载 消失的A盘和B盘 硬盘分区超26个会怎样?
1、硬盘到底能分多少个区?我们在安装操作系统和软件之前,需要对硬盘进行分区和格式化,然后才能使用硬盘保存各种数据。硬盘分区根据英文字母设定,这意味着我们可分26个盘符。在数据爆发的时代,我们的电脑接驳闪存卡、优盘以及移动硬盘,电脑安装多块硬盘的用户不在少数,并且存放的数据类型多样化,因此硬盘的分区有了进一步差异化。如果硬盘分区超过过26个盘符会如何?为什么我
2014-08-11 12:41:35
1558
转载 很幽默的讲解六种Socket I/O模型
本文简单介绍了当前Windows支持的各种Socket I/O模型,如果你发现其中存在什么错误请务必赐教。一:select模型二:WSAAsyncSelect模型三:WSAEventSelect模型四:Overlapped I/O 事件通知模型五:Overlapped I/O 完成例程模型六:IOCP模型老陈有一个在外地工作的女儿,不能经常回来,老陈和她通过信件
2014-07-23 11:29:39
606
转载 让 keil MDK 兼容 keil C51
下面这个方法可以让keilMDK兼容51的工程,只要一个keil就都能编译51和stm32的工程了:1、安装keilC51,并破解,安装目录 C:\keilC51\2、安装keilMDK,并破解,安装目录 C:\keilMDK\3、把 C:\keilC51\ 里面的 C51 文件夹复制到 C:\keilMDK\ 里4、把 C:\keilC51\ 里面的 UV4 文件
2014-06-16 12:50:38
8164
5
转载 记录几个开平方算法
整数开平方算法:本算法只采用移位、加减法、判断和循环实现,因为它不需要浮点运算,也不需要乘除运算,因此可以很方便地运用到各种芯片上去。我们先来看看10进制下是如何手工计算开方的。先看下面两个算式,x = 10*p + q (1)公式(1)左右平方之后得:x^2 = 100*p^2 + 20pq + q^2 (2)现在假设我们知道x^2和p,希望求出q来,求
2014-06-11 16:09:03
789
原创 Qt下 QString转char*
Qstring str;char* ch;QByteArray ba = str.toLatin1(); ch=ba.data();这样就完成了QString向char*的转化。经测试程序运行时不会出现bug注意第三行,一定要加上,不可以str.toLatin1().data()这样一部完成,可能会出错。
2014-06-04 09:42:01
640
转载 不懂技术的人不要对懂技术的人说这很容易实现
“这个网站相当简单,所有你需要做的就是完成X,Y,Z。你看起来应该是技术很好,所以,我相信,你不需要花费太多时间就能把它搭建起来。”我时不时的就会收到这样的Email。写这些邮件的人几乎都是跟技术不沾边的人,或正在研究他们的第一个产品。起初,当听到人们这样的话,我总是十分的恼怒。他们在跟谁辩论软件开发所需要的时间?但后来我意识到,即使我自己对自己的项目预测要花去多少开发时间,我
2014-04-28 13:02:00
1067
2
转载 Qt在Windows下的三种编程环境搭建
从QT官网可以得知其支持的平台、编译器和调试器的信息如图所示: http://qt-project.org/doc/qtcreator-3.0/creator-debugger-engines.html(Home | Docs | Qt Creator 3.0 | Debuggingand Analyzing | Setting Up Debugger)
2014-04-21 18:18:41
7120
转载 【OFFICE】Office 2010 取消弹出宏安全性设置错误的提示的技巧
FROM:http://everack.blog.hexun.com/50967195_d.html安装的Office 2010体积实在是太大了,我们一般会在安装时精简掉一些自认为没用的组件,但是如果选择不正确的话,很容易出现错误提示,最常见的莫过于这个了在打开或关闭word文档的时候提示"您试图运行的函数包含宏或需要宏语言支持的内容.而在安装此软件时,您(或者您的管理员)选择
2014-04-19 18:07:24
1026
转载 巧用QSignalMapper分类有序地处理大量信号
QSignalMapper这个类并不是个新鲜概念, 早在Qt2里就已经存在, 而且它的功能也是始终如一。 不过由于宣传力度不够(例子里涉及到它的很少)了解这个类人可能还不是很多, 所以特此撰文介绍此类的功能和用法。简单的理解,可以把SignalMapper这个类看成是信号的翻译和转发器, 它可以把一个无参数的信号翻译成带int参数、QString参数、QObject*参数或者QWidget
2014-04-18 18:36:48
579
转载 通过Qt4.2样式表定制程序外观
目录1. 何为Qt样式表2. 样式表语法基础3. 方箱模型4. 前景与背景5. 创建可缩放样式6. 控制大小7. 处理伪状态8. 使用子部件定义微观样式8.1. 相对定位8.2. 绝对定位摘要由于Qt样式表的引入,定制Qt部件的外观样式变得非常简单。 无论你是想仅仅修改一个现有部件的外观,还是想从零开始设计一套全新的界面风格, 现在都
2014-04-16 15:57:09
1051
原创 重写QLabel使其响应单、双击事件
#ifndef _LABEL_H_#define _LABEL_H_#include "QLabel"#include #include "qcoreevent.h"#include "qevent.h"#include "qtimer.h"class Label:public QLabel{ Q_OBJECTpublic: explicit Label(QWidget
2014-04-15 17:39:24
3543
4
转载 QT 连接SQLServer
QtSql虽说提供了通用的数据库访问接口,可是有些数据库就是不太通用, 在windows下用QT连接sqlserver,折腾了半天. 一. 配置 1. 启用TCP/IP 安装好sqlserver2005后, 开始菜单找到 配置工具->SQL Server配置管理器: SQLEXPRESS 的协议,启用TCP/IP,启用相应IP地址;
2014-04-09 11:51:07
15369
转载 QT下的几种透明效果
1.窗口整体透明,但是窗体上的控件不透明。 通过设置窗体的背景色来实现,将背景色设置为全透。 QPalette pal = palette(); pal.setColor(QPalette::Background, QColor(0x00,0xff,0x00,0x00)); setPalette(pal); 试验效果: 窗体标题栏不透明;
2014-04-03 14:28:20
1915
转载 Qt的tcpserver demo
mainwindow.cpp#include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { u
2014-04-02 15:53:35
805
转载 Qt的tcpclient demo
mainwindow.cpp#include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { u
2014-04-02 15:52:25
1187
转载 解决!Visual Studio 遇到了异常。这可能是由某个扩展导致的。
最新在偶的老笔记本上装了个VS2010,界面还是一如既往地炫,但是新问题就来了,这个版本的VS没有本地的MSDN,只有联机的帮助,这对于处在网速仍处在青铜时代的我来说,这绝对是个致命bug。既然VS2010没有本地的MSDN,那我就退而求其次,安装了2008的MSDN,结果问题就出现了: 只要在VS2010源码编辑器中输入一个字符,它就报道错误了 "visual studio
2014-02-25 10:11:27
1774
转载 TCP协议三次握手过程分析
TCP协议三次握手过程分析TCP(Transmission Control Protocol) 传输控制协议TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(rese
2014-02-17 13:28:08
684
转载 Qt多线程概述
Qt线程类Qt 包含下面一些线程相关的类:QThread 提供了开始一个新线程的方法QThreadStorage 提供逐线程数据存储QMutex 提供相互排斥的锁,或互斥量QMutexLocker 是一个便利类,它可以自动对QMutex 加锁与解锁QReadWriterLock 提供了一个可以同时读操作的锁QReadLocker 与QWriteLocker 是便
2014-02-11 13:12:32
601
转载 QT分割窗口QSplitter类 .
分割窗口在应用程序中经常用到,比如在类似资源管理器的窗口设计中:下面用代码实现上面窗口的设计:1.建立项目时基类选择QMainWindow,取消Gernerate form复选框的选中状态。2.在main.cpp中编写如下代码:view plaincopy to clipboard#
2014-02-08 09:23:55
1290
转载 谷歌中一些十分有趣的特效现象
最近笔者都在用google,并发现了一些十分有趣的现象,下面笔者是搜索的一些关于google十分有趣的特效现象。用一句时髦的话来讲,真的是“吊暴”了。实在是不得不佩服google前端工程师。(注:当在体验的时候google出现无法访问的时候,过几分钟后再搜索就可以打开了,至于理由,google去吧!)1、 在输入框键入关键词“do a barrel roll”或是” Z or R
2014-01-29 19:32:45
711
转载 QT共享内存
使用创建 QSharedMemory 对象调用 create 成员函数分配共享内存,或者 attach 附加到已创建的共享内存使用内存 (注意lock、unlock)下面的例子很简单,不用多说。编译之后,运行3个实例。第一个创建共享内存,其他的读取共享内存:#include /QCoreApplication>#include /QSharedMemory>int m
2014-01-25 11:13:11
3803
2
原创 共享内存
与虚拟内存相似,内存映射文件保留了一个地址空间区域,在需要时将它提交到物理存储器。它们之间的不同点是内存映射文件提交到物理存储器的数据来自磁盘上相应的文件,而不是系统页文件。一旦文件被映射,就可以认为整个文件被加载到了内存中,可以像访问内存一样访问文件的内容。 使用内存映射文件的目的有3 个: (1 )系统使用内存映射文件来加载和执行.EXE 和DLL 文件。这极大的节省了系统页文
2014-01-25 10:58:00
853
转载 C++中Overload、Overwrite和Override区别
Overload、Overwrite和Override的概念比较容易混淆,而且Overwrite和Override的中文翻译五花八门,让人很Confuse,顾保持英文原意:Overload 重载在C++程序中,可以将语义、功能相似的几个函数用同一个名字表示,但参数不同(包括类型、顺序不同),即函数重载。(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不
2014-01-22 11:50:26
858
转载 socket编程之select()
socket编程之select() Select在Socket编程中还是比较重要的,它能够监视我们需要监视的文件描述符的变化情况——读写或是异常。 Select的函数格式(Unix系统下的伯克利socket编程,和windows下的略有区别,体现两个方面:一是select函数的第一个参数,在windows下可以忽略,但在linux下必须设为最大文件描述符加1;二是结构fd
2014-01-21 11:51:20
562
转载 几种经典的网络服务器架构模型的分析与比较
前言事件驱动为广大的程序员所熟悉,其最为人津津乐道的是在图形化界面编程中的应用;事实上,在网络编程中事件驱动也被广泛使用,并大规模部署在高连接 数高吞吐量的服务器程序中,如 http 服务器程序、ftp 服务器程序等。相比于传统的网络编程方式,事件驱动能够极大的降低资源占用,增大服务接待能力,并提高网络传输效率。关于本文提及的服务器模型,搜索网络可以查阅到很多的实现代码,所以,本文
2014-01-21 10:48:09
487
转载 C++输入cin详解
输入原理:程序的输入都建有一个缓冲区,即输入缓冲区。一次输入过程是这样的,当一次键盘输入结束时会将输入的数据存入输入缓冲区,而cin函数直接从输入缓冲区中取数据。正因为cin函数是直接从缓冲区取数据的,所以有时候当缓冲区中有残留数据时,cin函数会直接取得这些残留数据而不会请求键盘输入#1:#include using namespace std;int main(){
2014-01-20 11:52:11
596
高等数学复习
2011-11-24
数电复习大纲
2011-11-24
单片机 万年历(1602带闹钟带温度带调时,可调 秒)
2011-06-02
winmount v3.4 绿色美化纯净版
2011-06-02
锁相环频率合成器设计与仿真
2010-12-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人