想做的事情太多了。
可以增强能力的事情也太多了
只能一步一步去做不要焦虑
现在是:
QT manual 每天一段 中文理解,不要手打出来,根据自己的理解再百度一下。锻炼英文的理解和自己的阅读能力。
QT 网站 每天一点 操作一下,实现就好,对于关键字,记录纸上看看
C++视频,把没有看完的看完,理解完。 然后重头再来一次。巩固加深一下。
2016-10-25
http://www.cnblogs.com/rushoooooo/archive/2011/09/03/2164623.html 这个里面讲了list的建立使用 用于放置初始定位
2016-10-24
http://www.linuxdiyf.com/linux/21503.html ubuntu 实现 虚拟机和宿主机的VNC远程桌面控制
http://blog.csdn.net/fly_yr/article/details/48164567 为什么要new, 和类直接定义对象的区别。释放与否,需要delete与否
http://jingyan.baidu.com/article/ce09321b4582162bfe858f7d.html 原来想着写样式表 颜色什么的命令太麻烦。原来有很简单的方法,太牛了。还是得多用。
2016-10-21
const T、const T*、T *const、const T&、const T*& 的区别
http://blog.csdn.net/luoweifu/article/details/45600415 超级清楚讲的
2016-10-20
malloc/free,new/delete必需配对使用。
malloc与free是c++、c语言的标准库函数,new、delete是c++的运算符。它们都可用用申请动态内存和释放内存。对于非内部数据类型的对象而言,光用malloc/free无法满足动态对象的要求。对象在创建的同时要自动执行函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于malloc/free。因此c++语言需要一个能完成动态内存分配和初始化工作的运算符new,以及一个能完成清理与释放内存工作的运算符delete。注意new/delete不是库函数。
centos 共享不了文件夹
https://my.oschina.net/u/2400083/blog/474940
20161019
http://blog.csdn.net/csxiaoshui/article/details/44177495 c++11 多线程 实现方式
http://blog.csdn.net/csxiaoshui/article/details/44202129
arning: Source file is more recent than executable. 出现了上述错误的原因是,修改了源文件,而没有make!因此,需要重新编译一遍
Uedit 打开Ini , 显示是ANSI文件。吕工说转换成 UTF8编码,QT读入就正常。
no matching function for call to ifstream open
Change to:
file.open(name.c_str());
or just use the constructor as there is no reason to separate construction and open:
std::ifstream file(name.c_str());
null was not declared in this scope
NULL并不是C++的关键字,它可以看一个0的常量,因此用
#define NULL 0
2016-10-18 周二
C++设计模式里有工厂模式,单例模式。
http://blog.csdn.net/bestone0213/article/details/43491785 单例例子
QHBoxLayout:水平布局,在水平方向上排列控件,即:左右排列
2016-10-14
http://blog.chinaunix.net/uid-24517549-id-4051159.html 位域,段域。
c++函数声明 后面加冒号: C++类构造函数初始化列表 成员初始化列表,按声明顺序初始化
http://blog.csdn.net/ianchoi/article/details/6917899 这个有一个详细的构造函数使用 初始化列表的好处和举例,最大的好处是使常量数据成员赋值变为可能,相当于初始化。还有是类成员初始化之前就初始化完成了。内置初始化不能达到的。
tableWidget用了一个双击槽函数on_tableWidget_doubleClicked(QModelIndex index)
。会传递一个参数QModelIndex index,会在槽函数中判断是第几行,执行响应的操作,我现在的问题是我想在其他地方也触发这个槽函数,我就是不知道怎么给QModelIndex类型赋值,
2016-10-13
http://www.cnblogs.com/cxjchen/p/3148582.html 单例模式
2016-10-10
http://www.cnblogs.com/daidaigua/archive/2012/04/18/2455399.html
reentrant
实在没找着qt的方法, 通过windows api暂时满足我的需求;
void xxx::focusInEvent(QFocusEvent *event)
{
...
//关闭输入法
QWidget *pWidget = this->window();
QNoNCDialog *pNcDialog = (QNoNCDialog*)pWidget;
HWND hWnd = pNcDialog->GetHwnd();
m_hIMC = ImmAssociateContext(hWnd, NULL);
}
void xxx::focusOutEvent(QFocusEvent *event)
{
...
//恢复输入法
QWidget *pWidget = this->window();
QNoNCDialog *pNcDialog = (QNoNCDialog*)pWidget;
HWND hWnd = pNcDialog->GetHwnd();
ImmAssociateContext(hWnd, m_hIMC);
}
HIMC _IMC;
HWND hWnd = (HWND)this->winId();
_IMC = ImmGetContext(hWnd);
if (hWnd && IsWindow(hWnd))
{
ImmAssociateContext(hWnd, NULL);
ImmReleaseContext(hWnd,_IMC);
}
2016-10-08
今天吕工给了一个新的程序,然后很多DOS下的东西,没有用过和见过
unsigned char far * :大于64K的块被分配;用远指针存取该块
在16位编译器(Turbo C..)中常见。这跟内存寻址有关(看一下汇编。。。我头都大了@_@)
PC机的内存地址是由段地址和偏移地址组成(汇编中常见的词),每个段不能超过64K地址。因此在段内寻址,只要用到偏移地址就够了,因段地址寄存器所存的段地址是不变的,用指针时,只16位够了(仅表示偏移地址)这类地址称为近指针(near型);当要跨段时,即要指明所要存取的段地地和偏移地址时,这时段寄存器中所存段地址要改变,因此要用指针指向另一个段内地址时,此时要用32位表示(段地址:偏移地址),称远指针,是far 型的。
在16位C编译器还提供了一种huge巨型指针,当地址超过64k段容量时,自动修改段地址,使之指向另一段。不过,这些都是由系统自动管理,我们用不着操心。
unsigned char far *就是一个指向无符号字符型的远指针(也就是指向一个字节的远指针)
void interrupt (*oldtimer)(void) 首先interrupt 用于说明这是中断处理函数, 我们为了简单方便, 先省略它,变成 void (*oldtimer)(void) 根据运算顺序: 1, *oldtimer 说明oldtimer 是个指针! 2, (*oldtimer)(void) 说明(*oldtimer)是个函数 3, void (*oldtimer)(void) 说明函数(*oldtimer)(void) 的返回类型是void 即 oldtimer 是一个指向 “无参数,返回类型为void” 类型函数的指针。
getvect()函数是用来取得DOS中断地址。setvect()则是用来向指定的DOS中断地址写入新的中断内容
GCC
G++
gdb
2016-09-23 周五
对于功率,dB = 10*log()。对于电压或电流,dB = 20*log()。 dB的意义其实再简单不过了,就是把一个很大(后面跟一长串0的)或者很小(前面有一长串0的)的数比较简短地表示出来。如(此处以功率为例): X = 100000 = 10*log(10^5) = 50 dB X = 0.000000000000001 = 10*log(10^-15) = -150 dB dBm 定义的是 miliwatt。 0 dBm = 10log(1) mW = 1 mW; dBw 定义 watt。 0 dBw = 10log1 W = 10*log(1000) mw = 30 dBm。 dB在缺省情况下总是定义功率单位,以 10*log 为计。当然某些情况下可以用信号强度(Amplitude)来描述功和功率,这时候就用 20log 为计。不管是控制领域还是信号处理领域都是这样。比如有时候大家可以看到 dBmV 的表达。
-------Cin输入16进制数:
#include <iostream>
using namespace std;
int main(void)
{
int getint;
cout<<"put in num:"<<endl;
cin>>hex>>getint;
cout<<hex<<getint;
return 1;
}
----控制台竟然没有输出
uint8_t uchCRCHi = 0xFF ;
uint8_t uchCRCLo = 0xFF ;
cout<<hex<<uchCRCHi<<endl;
cout<<hex<<uchCRCLo<<endl;
改成
uint16_t uchCRCHi = 0xFF ;
uint16_t uchCRCLo = 0xFF ;
就有输出了。