C/C++
wqsailor12
这个作者很懒,什么都没留下…
展开
-
“池化技术”漫谈 - 线程池,内存池,连接池……
池化技术 - 简单点来说,就是提前保存大量的资源,以备不时之需,O(∩_∩)O,对于线程,内存,oracle的连接对象等等,这些都是资源,程序中当你创建一个线程或者在堆上申请一块内存时,都涉及到很多系统调用,也是非常消耗CPU的,如果你的程序需要很多类似的工作线程或者需要频繁的申请释放小块内存,如果没有在这方面进行优化,那很有可能这部分代码将会成为影响你整个程序性能的瓶颈。池化技术主要有线程池,内转载 2012-04-06 11:06:48 · 365 阅读 · 0 评论 -
关于I2C和SPI总线协议
IICvs SPI 现今,在低端数字通信应用领域,我们随处可见IIC (Inter-Integrated Circuit) 和 SPI (Serial Peripheral Interface)的身影。原因是这两种通信协议非常适合近距离低速芯片间通信。Philips(for IIC)和Motorola(for SPI) 出于不同背景和市场需求制定了这两种标准通信协议。转载 2013-10-14 11:34:45 · 755 阅读 · 0 评论 -
WinCE应用程序开机自动运行
一、开机自运行常规方法近日在开发过程中遇到WinCE应用程序开机自动运行的问题,在网上找了找,发现大概有以下三种方法:1、 将应用程序和应用程序快捷方式添加到映像里,再将快捷方式添加到StartUp目录下,这样当系统运行后应用程序就能自动运行;2、 直接替换Wince的SHELL,即修改注册表:view plaincopy to clipboardprint?转载 2013-09-24 11:29:55 · 767 阅读 · 0 评论 -
谈在Debug和Release模式下输出调试信息
在调试程序时,有时候设置断点单步运行并不能查出问题的所在,比如程序可能在运行一段时间后死掉了,或者对于Release版本运行不正常等等原因吧,这时需要通过设置一些输出信息,来帮助定位错误发生的位置,这点非常有用。根据个人编程习惯,我通常都会在程序编写过程中适当地加入一些输出信息。 1、输出宏和函数 ①使用TRACE,其语法类似printf,用于向Output窗口输出转载 2013-03-19 15:55:34 · 7452 阅读 · 0 评论 -
数据在计算机中的存储形式和运算
一、数据概述以C语言为例,里面所有的基本数据类型,都是以符合人类世界和自然世界的逻辑而出现的。比如说int,bool,float等等。这些数据类型出现的目的,是更于让人容易理解,可以说,这些数据类型是架通人类思维 与 计算机的桥梁。我们知道。依照冯诺依曼体系,计算机中并没有这些int float等等,而全部都是0和1表示的二进制数据,并且计算器只能理解这些0和1的数据。所以说,所有的转载 2013-03-18 11:01:56 · 7489 阅读 · 0 评论 -
Windows Socket五种I/O模型——代码全攻略
如果你想在Windows平台上构建服务器应用,那么I/O模型是你必须考虑的。Windows操作系统提供了选择(Select)、异步选择(WSAAsyncSelect)、事件选择(WSAEventSelect)、重叠I/O(Overlapped I/O)和完成端口(Completion Port)共五种I/O模型。每一种模型均适用于一种特定的应用场景。程序员应该对自己的应用需求非常明确,而且综合转载 2013-01-25 11:38:33 · 679 阅读 · 0 评论 -
Winsock五种IO模型的性能分析
Winsock五种I/O模型的性能分析五种I/O模型的性能分析重叠I/O模型的另外几个优点在于,微软针对重叠I/O模型提供了一些特有的扩展函数。当使用重叠I/O模型时,可以选择使用不同的完成通知方式。采用事件对象通知的重叠I/O模型是不可伸缩的,因为针对发出WSAWaitForMultipleEvents调用的每个线程,该I/O模型一次最多都只能支持6 4个套接字。假如想让这个模型同时转载 2013-01-25 11:23:09 · 785 阅读 · 0 评论 -
VC++如何派生控件并实现自绘
1.首先从一个现成的控件类(比如CButton)设计派生出自己的控件类,比如CButtonExte,2.实现虚函数virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct):LPDRAWITEMSTRUCT 定义如下typedef struct tagDRAWITEMSTRUCT { UINT C转载 2013-01-07 09:06:09 · 1673 阅读 · 0 评论 -
VC++串口通信
Win 32系统把文件的概念进行了扩展。无论是文件、通信设备、命名管道、邮件槽、磁盘、还是控制台,都是用API函数CreateFile来打开或创建的。该函数的声明为:HANDLE CreateFile( LPCTSTR lpFileName, // 文件名 DWORD dwDesiredAccess, // 访问模式 DWORD dwShareMode, // 共享模式转载 2013-01-05 10:50:08 · 7524 阅读 · 3 评论 -
C/C++ union用法
在C/C++程序的编写中,当多个基本数据类型或复合数据结构要占用同一片内存时,我们要使用联合体;当多种类型,多个对象,多个事物只取其一时(我们姑且通俗地称其为“n 选1”),我们也可以使用联合体来发挥其长处。首先看一段代码:union myun {struct { int x; int y; int z; }u; int k; }a; int main() {转载 2012-11-29 09:48:13 · 1510 阅读 · 0 评论 -
OnEraseBkgnd、OnPaint与画面重绘
问题背景:窗体在重绘时,由于过频的刷新会引起闪烁现象——窗体在刷新时,总要有一个擦除原来图象的过程OnEraseBkgnd,它利用背景色填充窗体绘图区,然后在调用新的绘图代码进行重绘,这样一擦一写造成了图象颜色的反差。当WM_PAINT的响应很频繁的时候,这种反差也就越发明显。绘制过程:当窗口整体需要重绘时,系统依次发送WM_NCPAINT、WM_ERASEBKGND、WM_PAINT转载 2012-10-26 09:37:07 · 865 阅读 · 0 评论 -
VC++模态对话框和非模态对话框
MFC中有两种类型的对话框:模态对话框和非模态对话框。模态对话框是指当其显示时,程序会暂停执行,直到关闭这个模态对话框后,才能继续执行程序中其他任务。非模态对话框是指当其显示时,允许转而执行程序中其他任务,而不用关闭这个对话框。模态对话框的创建:创建模态对话框需要调用CDialog类的成员函数:DoModal,该函数的功能是创建并显示一个模态对话框,其返回值将作为CDial转载 2012-11-02 16:42:29 · 679 阅读 · 0 评论 -
C#与C++的混合编程
C#写界面比较方便,而C++则擅长写算法,所以将两者结合起来将会加快程序的开发速度,并保证程序的质量。但C#与C++的混合编程有很多细节问题需要注意,下面简要列举一些并指出相应的解决办法。 1. 将本机C++代码(指非托管C++)编译成一个dll,供C#调用,调用方法为 [DllImport(×××.dll)] 。但是这里只能从 DLL 导出函数,不能导出类(还没有测试能否导出变量转载 2012-10-29 09:12:22 · 8562 阅读 · 0 评论 -
WINDOWS 逻辑坐标 设备坐标 屏幕坐标 客户区坐标
(1)Windows坐标系统Windows坐标系分为逻辑坐标系和设备坐标系两种,GDI支持这两种坐标系。一般而言,GDI的文本和图形输出函数使用逻辑坐标,而在客户区移动或按下鼠标的鼠标位置是采用设备坐标。 逻辑坐标系是面向DC的坐标系,这种坐标不考虑具体的设备类型,在绘图时,Windows会根据当前设置的映射模式将逻辑坐标转换为设备坐标。设备坐标系是面向物理设备的坐标系,这种坐标以转载 2012-10-29 15:15:28 · 755 阅读 · 0 评论 -
MFC 框架各类指针的获取
MFC指针的获取 1、获取应用程序指针CMyApp* pApp=(CMyApp*)AfxGetApp();2、获取主框架指针CWinApp 中的公有成员变量 m_pMainWnd 就是主框架的指针CMainFrame* pMainFrame = (CMainFrame*)(AfxGetApp()-m_pMainWnd);或者CMainFrame* pMainFram转载 2012-10-17 09:51:11 · 612 阅读 · 0 评论 -
内存泄露检查
1.检查内存分配与释放是否有一一对应: new -> delete; Malloc -> free; GlobalAlloc -> GlobalFree等2.句柄泄露,如文件句柄,窗口句柄等。 HANDLE hFile = CreateFile(); -> CloseHandle(hFile); HWND hwnd = ::Crea原创 2012-04-20 17:49:33 · 570 阅读 · 0 评论 -
站在巨人的肩膀上,C++开源库大全
[-]标准库框架人工智能异步事件循环音频生态学压缩并发性容器密码学数据库调试游戏引擎图形用户界面图形图像处理国际化Jason日志机器学习数学多媒体网络物理学机器人学科学计算脚本序列化视频虚拟机Web应用框架XML多项混杂软件编译器在线编译器调试器集成开发环境IDE构建系统静态代码分析程序员要站在巨人的肩膀上,C++拥有丰富的开源库,这里包括:标准库、Web应用框转载 2015-01-08 14:54:23 · 834 阅读 · 0 评论