- 博客(35)
- 资源 (3)
- 收藏
- 关注
转载 MFC中使用ADO进行数据库操作
MFC中使用ADO进行数据库操作 参考FROM:http://hi.baidu.com/sunkanghome/item/e1fda510b3186359f1090ee2数据库与数据库编程:当前各种主流数据库有很多,包括Oracle, MS SQL Server, Sybase, Informix, MySQL, DB2, Interbase / Firebird, PostgreSQL, S...
2018-04-10 18:03:22 1365
转载 C++ 内存、new与malloc分配内存区别
关于内存 1、内存分配方式 内存分配方式有三种: (1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。 (2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。 (3) 从堆上分配,亦称动...
2018-03-31 09:46:35 281
转载 C++基础--完善Socket C/S ,实现客户端,服务器端断开重连
原文地址::http://www.cnblogs.com/kingdom_0/articles/2571727.html相关文章1、socket连接,判断连接中断,如果中断,并自动重连。----http://blog.csdn.net/yoland/article/details/64481392、关于socket判断连接断开并重连----http://blog.csdn.ne
2018-01-10 14:03:53 5075
转载 linux下.tar.gz和.gz文件解压详解
.tar.gz和.gz文件是两种不同的文件,需要区别对待,解压命令当然也不同咯,下面来分享一下他们各自的解压方法。1. .tar.gz文件,这种文件是tar文件的压缩文件,可以使用tar命令进行解压。例如:解压:tar zxvf pythontab.tar.gz解压文件到指定文件夹: tar xzvf fenci.py.tar.gz -C pytho
2018-01-10 11:29:53 28000 1
转载 动态调用DLL函数有时正常,有时报Access violation的异常
动态调用DLL函数有时正常,有时报Access violation的异常typedef int (add *)(int a,int b);void test(){hInst=LoadLibraryA("aimdtl.dll");(FARPROC &)add=GetProcAddress(hInst,"add");add(1,2);}按这个代码
2017-12-29 17:26:52 1392
转载 STM32晶振8M改12M方法
由于STM32F10x库官方采用的是默认的外接8MHz晶振,因此造成很多用户也采用了8MHz的晶振,但是,8MHz的晶振不是必须的,其他频点的晶振也是可行的,只需要在库中做相应的修改就行。 在论坛上看到很多用户反映,使用外接12MHz的晶振,会造成很多的问题,如USART的波特率不正确,Systick走时不准等问题,在无论是在实际调试还是在软件模拟中都会发现这个情况,其实,这不能
2017-08-22 15:32:49 6160 2
转载 MDK下设置非零初始化
因不想开机初始化几十兆的SDRAM,所以从网上查资料修改分散加载文件UNINIT实现,资料整理如下,向原作者致敬! 一些工控产品,当系统复位后(非上电复位),可能要求保持住复位前RAM中的数据,用来快速恢复现场,或者不至于因瞬间复位而重启现场设备。而keil mdk在默认情况下,任何形式的复位都会将RAM区的非初始化变量数据清零。如何设置非初始化数据变量不被零初始化,这是本篇文章所
2016-05-16 17:51:54 1130
转载 socket
非阻塞套接字 非阻塞模式是指:套接字在执行操作时,调用的函数不管操作是否完成都会立即返回的工作模式。 非阻塞套接字在处理同时建立的多个连接等方面具有明显的优势。但是使用过程中有一定的难度。由于函数在操作没有完成后也仍然会返回,为了实现某些功能必须循环调用,直到完成功能为止。因此非阻塞模式会使程序效率非常低。 把套接字设置为非阻塞模式,即告诉系统:
2016-04-17 23:31:23 288
转载 MFC线程编程
MFC中有两类线程,分别称之为工作者线程和用户界面线程。二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环。 工作者线程没有消息机制,通常用来执行后台计算和维护任务,如冗长的计算过程,打印机的后台打印等。用户界面线程一般用于处理独立于其他线程执行之外的用户输入,响应用户及系统所产生的事件和消息等。但对于Win32的API编程而言,这两种线程是没有区别的
2016-04-15 10:41:55 248
转载 C++ 类的静态成员用法
在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用。所以在所有对象中都可以共享它。使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节省内存。静态成员的定义或声明要加个关键static。静态成员可以通过双冒号来使用即::。 在C++中类的静态成员变量和静态成员函数是个容易出错的地方,本文先通过几个例子来总结静态成
2016-04-06 12:49:04 436
转载 lwIP RAW TCP/IP接口
lwIP RAW TCP/IP接口作者: Adam Dunkels, Leon Woestenberg, Christiaan Simons lwIP为使用TCP/IP协议通信的应用程序编程提供了两种接口接口(APIs):* 低层次的称之为"core" / "callback" 或者 "raw" API* 高层次的称之为"sequential" API lwIP
2016-03-15 13:18:36 820
转载 LWIP之opt.h配置含义
SYS_LIGHTWEIGHT_PROT 平台锁,保护关键区域内缓存的分配与释放NO_SYS --- 是否带操作系统, =1时带,=0时,不带MEMCPY(dst,src,len) --- 内存拷贝 若你希望自己写拷贝函数则可替换SMEMCPY(dst,src,len) ---内存拷贝 若你希望自己写拷贝函数则可替换MEM_LIBC_MALLOC --- 内存函数库的使用,
2016-03-13 23:24:23 6377 1
转载 lwip BSD API函数说明
最常用的BSD API函数:socket:创建一个插口(socket)bind:将本地端口号和IP地址绑定到插口上listen:TCP监听accept:TCP监听接受处理connect:TCP客户端连接select:特殊插口设置send/sendto:发送数据包到已连接/未连接插口上recv/recvfrom:接收数据包从已连接/未连接插口上getsoc
2015-09-16 15:16:44 1742
原创 RMDK中嵌入汇编语句
RMDK中可以使用__asm("指令")嵌入汇编语句,但是需要注意__asm("指令")、__asm{指令、指令...}这种语法是内联汇编的语法。而RMDK下,内联汇编仅支持ARM汇编语言,不支持Thumb或者Thumb-2汇编语言;但内嵌汇编器支持Thumb和Thumb-2指令。所以,在不支持ARM模式下嵌入汇编时(STM32 在RMDK工具下嵌入汇编),只能采用内嵌汇编的方式。
2015-08-15 12:44:50 908
转载 scatter 分散加载描述文件要点
scatter基本点:1. 编译后输出的映像文件中各段是首尾相连的,中间没有空闲的区域,它们的先后关系是根据链接时参数的先后次序决定的 armlinker -file1.o file2.o ……2. scatter用于将编译后的映像文件中的特定段加载到多个分散的指定内存区域3. 有2类域region:执行域(execution region,一般是ram区域)和加载域(load reg
2015-08-12 13:37:05 1262
转载 C语言对齐问题
一、概念 对齐跟数据在内存中的位置有关。如果一个变量的内存地址正好位于它长度的整数倍,他就被称做自然对齐。比如在32位cpu下,假设一个整型变量的地址为0x00000004,那它就是自然对齐的。 二、为什么要字节对齐 需要字节对齐的根本原因在于CPU访问数据的效率问题。假设上面整型变量的地址不是自然对齐,比如为0x00000002,则CPU如果
2015-03-31 21:26:08 578
转载 二进制十进制互转---不能忘记的基础知识
一、二进制数转换成十进制数 由二进制数转换成十进制数的基本做法是,把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。这种做法称为"按权相加"法。 例1105 把二进制数110.11转换成十进制数。 二、十进制数转换为二进制数 十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。
2014-12-23 22:32:18 1753
翻译 STM32外部中断的使用
1 基本概念ARM Coetex-M3内核共支持256个中断,其中16个内部中断,240个外部中断和可编程的256级中断优先级的设置。STM32目前支持的中断共84个(16个内部+68个外部),还有16级可编程的中断优先级的设置,仅使用中断优先级设置8bit中的高4位。STM32可支持68个中断通道,已经固定分配给相应的外部设备,每个中断通道都具备自己的中断优先级控制字节PRI_n
2014-12-06 15:18:43 807
原创 MAC地址存在的意义
IP地址就如同一个职位,而MAC地址则好像是去应聘这个职位的人才,职位可以既可以让甲坐,也可以让乙坐,同样的道理一个节点的IP地址对于网卡是不做要求,基本上什么样的厂家都可以用,也就是说IP地址与MAC地址并不存在着绑定关系。本身有的计算机流动性就比较强,正如同人才可以给不同的单位干活的道理一样的,人才的流动性是比较强的。职位和人才的对应关系就有点像是IP地址与MAC地址的对应关系。比如,如果一个
2014-08-27 17:48:35 2827
转载 给年轻的工程师---关于高工资
转自电子工程师专辑,有一定道理。原文地址:http://www.eet-china.com/ART_8800647045_617703_NT_add9df1f.HTM?click_from=8800081204,9950018795,2011-07-15,EECOL,ARTICLE_ALERT&click_from==etsd 前两天有位小兄弟来访,席间说起找工作的事情,想
2014-07-20 12:39:50 544
转载 CAN bus 基础知识
CAN简介 CAN[Control(Controller) Area Network]是控制(器)局域网的简称 它是德国Bosch公司在1986年为解决现代汽车中众多测量控制部件之间的数据交换而开发的一种串行数据通信总线。 现已被列入ISO 国际标准,称为ISO11898 CAN最初是为汽车的监测、控制
2014-06-07 10:12:56 1831
转载 C++类中的static数据成员,static成员函数
C++类中谈到static,我们可以在类中定义static成员,static成员函数!C++primer里面讲过:static成员它不像普通的数据成员,static数据成员独立于该类的任意对象而存在,每个static数据成员是与类关联的对象,并不与该类的对象相关联!这句话可能比较拗口,其实可以这么理解:每个static数据成员可以看成是类的一个对象,而不与该类定义的对象有任何关系!下面我们就来具体
2014-01-23 08:00:06 566
转载 Qt 数据类型转换
各种数据类型的相互转换char * 与 const char *的转换char *ch1="hello11";const char *ch2="hello22";ch2 = ch1;//不报错,但有警告ch1 = (char *)ch2;char 转换为 QString其实方法有很多中,我用的是:char a='b';QString str;str=QS
2014-01-21 13:16:25 632
转载 Qt 汉字乱码的分析
首先呢,声明一下,QString 是不存在中文支持问题的,很多人遇到问题,并不是本身 QString 的问题,而是没有将自己希望的字符串正确赋给QString。很简单的问题,"我是中文"这样写的时候,它是传统的 char 类型的窄字符串,我们需要的只不过是通过某种方式告诉QString 这四个汉字采用的那种编码。而问题一般都出在很多用户对自己当前的编码没太多概念,于是一
2014-01-21 08:56:10 722
转载 c c++中冒号的用法
1.冒号(:)用法(1)表示机构内位域的定义(即该变量占几个bit空间)typedef struct _XXX{unsigned char a:4;unsigned char c;} ; XXX(2)构造函数后面的冒号起分割作用,是类给成员变量赋值的方法,初始化列表,更适用于成员变量的常量const型。struct _XXX{_XXX
2014-01-18 10:30:44 921
转载 安装MDK4.7与ADS1.2冲突的解决方法
Warning: L6310W: Unable to find ARM libraries.Error: L6411E: No compatible library exists with a definition of startup symbol __main.Target not created问题原因是MDK与ADS冲突了,解决方法如下方法一:卸载,同时把ADS1.2的环境变量删
2013-12-22 22:50:45 2242
原创 串口键盘在Qt上的移植
项目中用到Qt进行开发,其中键盘部分电路自己设计,所以qt自带的键盘驱动无法直接使用,需要进行一些简单的移植才可以。键盘电路是用单片机扫描方式,通过串口与系统的连接。为了修改方便,直接拿qkbdtty_qws.cpp进行修改,同时修改的还有qkbdtty_qws.h和qkbddriverfactory_qws.cpp,这几个文件都在src/gui/embedded下面。为了串口传送的数据具
2013-12-02 17:45:35 1592
转载 电脑键盘键值码
0x1 鼠标左键 0x2 鼠标右键 0x3 CANCEL 键 0x4 鼠标中键 0x8 BACKSPACE 键 0x9 TAB 键 0xC CLEAR 键 0xD ENTER 键 0x10 SHIFT 键 0x11 CTRL 键 0x12 MENU 键 0x13 PAUSE 键 0x14 CAPS LOCK 键 0x1B ESC 键 0x20
2013-12-02 15:57:00 872
转载 QT下 QSocketNotifier 类的使用
QSocketNotifier 用来监听系统文件操作,将操作转换为Qt事件进入系统的消息循环队列。并调用预先设置的事件接受函数,处理事件。一共存在3类事件:read,write,exception. QSocketNotifier::Read0There is data to be read.QSocketNotifier::Writ
2013-12-02 11:08:26 1036
转载 linux串口编程
1.串口操作需要的头文件#include //标准输入输出定义#include //标准函数库定义#include //Unix标准函数定义#include #include #include //文件控制定义#include //POSIX中断控制定义#include
2013-12-02 11:04:21 593
转载 QT--QSocketNotifier类介绍
QSocketNotifier 用来监听系统文件操作,将操作转换为Qt事件进入系统的消息循环队列。并调用预先设置的事件接受函数,处理事件。一共存在3类事件:read,write,exception. QSocketNotifier::Read0There is data to be read.QSocketNotifier::Writ
2013-11-28 17:17:39 584
原创 天地飞6通道遥控器解码
在做四轴,想到要改造一下遥控器。我用的是天地飞6通道2.4G版。改造的思路是这样的:用M8单片机读取PPM信号,用液晶显示出6个通道的解码,当然这个解码还需要根据飞控板进行一下校准,让液晶的显示与飞控接收的完全对应。同时,我之前把遥控器改造为锂电充电的方式,用M8顺便采集电池的电压并通过液晶显示,方便使用。工作已经完成99.9%,但是悲剧的事情发生了,电脑出现故障,源代码丢失,能用的技术手段都
2013-11-28 10:58:35 4820
原创 tar 命令 对文件夹压缩解压
对文件夹打包tar cvzf xxx.tar.gz xxx/ 这样会生成tar.gz的文件解压用#tar -xzvf /xxx.tar.gz以下是tar命令的其他用法,摘自网络tar格式: tar [选项] [文件目录列表]功能: 对文件目录进行打包备份选项:-c 建立新的归档文件-r 向归档文件末尾追加文件-x 从归档文件中解出文件-
2013-10-26 16:45:22 1524
原创 wpa_supplicant 配置无线网络
安装无线网络驱动后,需要执行wpa_supplicant 配置无线网络,wpa_supplicant的应用网络上到处都是,具体可以这样:wpa_supplicant -Dwext -ira0 -c/usr/wifi/wpa_supplicant.conf -dd &注意-ira0 是网卡的名称,-c/usr/wifi/wpa_supplicant.conf 路径要正确。设置完成后,
2013-10-25 15:01:51 1040 2
QT数字键汉字输入法
2015-01-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人