![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c/c++学习
文章平均质量分 85
liyun422828
这个作者很懒,什么都没留下…
展开
-
KEIL C变量定义占用空间
所提到变量就是一种在程序执行过程中其值能不断变化的量。要在程序中使用变量必须先用标识符作为变量名,并指出所用的数据类型和存储模式,这样编译系统才能为变量分配相应的存储空间。定义一个变量的格式如下: [存储种类] 数据类型 [存储器类型] 变量名表 在定义格式中除了数转载 2011-08-18 21:53:55 · 2245 阅读 · 0 评论 -
引用 Debug Assertion Failed!File:wingdi.cpp Line:1120
原因1: 去年开始处理图像时到现在一直有这样一个问题:如果打开一幅位24真彩色图像,进行各种处理,都没有问题,但如果不是真彩色图像,如黑白图、灰度图或伪彩色图,那么只能处理一次,再进行任何一种处理时都会弹出对话框提示:Debug Assertion Failed! File:wingdi.cpp Line:1120 For information on how your progra转载 2011-11-01 11:44:40 · 1976 阅读 · 0 评论 -
VC控件学习笔记
VC控件学习笔记 摘自http://blog.163.com/rb_shen/blog/static/624226472008022113631938/CEdit重新审视一个从没想过的问题今天终于出现了!我自己都感到以外!呵呵,什么问题呢?可能你也没想过哦。即使想过,你解答了没有?是一个聊天的转载 2011-11-01 21:57:57 · 1731 阅读 · 0 评论 -
Visual C++ 6.0 常见断言错误总结
断言所在函数具体位置意义ASSERT(m_hWnd==NULL)CWnd::Attach()WINCORE.CPP文件中的第320行这个断言通常可能是由于试图把一个已经捆绑(attach)过的窗口捆绑在其他的对象上,只能有一个MFC对象能够捆绑到一个窗口上--不然,消息映射就会不正常ASSERT((dwStyle& WS_POPUP) == 0)转载 2011-11-01 21:16:49 · 2811 阅读 · 0 评论 -
预处理,编译, 优化, 汇编, 链接 .
编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言(目标文件),并且按照操作系统对可执行文件格式的要求链接生成可执行程序。C源程序头文件-->预编译处理(cpp)-->编译程序本身-->优化程序-->汇编程序-->链接程序-->可执行文件1.编译预处理读取c源程序,对其中的伪指令(以#开头的指令)和特殊符号进行处理转载 2011-10-31 10:53:20 · 347 阅读 · 0 评论 -
CString用法
CString::Compareint Compare( LPCTSTR lpsz ) const;返回值 字符串一样 返回0 小于lpsz 返回-1 大于lpsz 返回1 区分大小字符 CString s1( " abc" );CString转载 2011-10-30 22:26:11 · 489 阅读 · 0 评论 -
CString,string,char*的综合比较
(一) 概述string和CString均是字符串模板类,string为标准模板类(STL)定义的字符串类,已经纳入C++标准之中;CString(typedef CStringT> CString)为Visual C++中最常用的字符串类,继承自CSimpleStringT类,主要应用在MFC和ATL编程中,主要数据类型有char(应用于ANSI),wchar_t(unicode)转载 2011-10-28 15:42:01 · 322 阅读 · 0 评论 -
抽象类和虚函数
抽象类 带有纯虚函数的类称为抽象类。抽象类是一种特殊的类,它是为了抽象和设计的目的而建立的,它处于继承层次结构的较上层。抽象类是不能定义对象的,在实际中为了强调一个类是抽象类,可将该类的构造函数说明为保护的访问控制权限。 抽象类的主要作用是将有关的组织在一个继承层次结构中,由它来为它们提供一个公共的根,相关的子类是从这个根派生出来的。转载 2011-10-26 13:51:50 · 536 阅读 · 0 评论 -
RS232、RS485和RS422介绍与比较
一、RS-232接口 1、RS-232的历史和作用 在串行通讯时,要求通讯双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通讯。RS-232-C接口(又称EIARS-232-C)是目前最常用的一种串行通讯接口。(“RS-232-C”中的“-C”只不过表示RS-232的版本,所以与“RS-232”简称是一样的)它是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器转载 2011-10-22 01:27:24 · 1216 阅读 · 0 评论 -
指针的运算-数组名指针
#define 串1 串2 //;不能加//只进行串的替换,不进行类型优先级的检查。#define A 6#define B A #define PLUS(X,Y) X+Y int x=1,y=2,z=3,sum; sum=PLUS(x+y,z)*PLUS(y,z); =x+y+z*y+z第6章 指针、引用和动态空间 指针:唯一转载 2011-10-19 23:18:58 · 1129 阅读 · 0 评论 -
C /C++混合编程——关于“#ifdef __cplusplus” 和 " extern "C" "
看一些程序的时候老是有“#ifdef __cplusplusextern "C" {#endif”的定义,搞搞清楚是怎么回事:Microsoft-Specific Predefined Macros__cplusplus Defined for C++ pro转载 2011-10-03 21:00:57 · 480 阅读 · 0 评论 -
C语言中不同数据类型间混合运算的转换规则
2、不同数据类型间混合运算的转换规则 不同数据类型的数据进行预算时,必须先转换成同一数据类型,然后才能进行运算。转换的规则如下图所示: 图中横向向左的箭头表示必定的转换,如字符数据必须先转换成整数,short型转换为int型,float型数据在转载 2011-09-25 00:04:21 · 1583 阅读 · 0 评论 -
C++多态技术详解 .
C++多态技术在下面的这篇文章里描述得很清晰,但它忽略了技术细节,即多态是如何实现的?在看完第一章之后,虚函数和虚函数表是下一站。第一章 C++多态技术C++多态技术作者:荣耀提交者:eastvc 发布日期:2003-12-14 19:38:12原文出处:转载 2011-09-23 20:26:53 · 337 阅读 · 0 评论 -
《COM 原理与应用》学习笔记 - 第一部分 COM原理收藏
《COM 原理与应用》学习笔记 - 第一部分 COM原理(本文内容基本上是从《COM 原理与应用》书中摘录,版权由作者潘爱民所有.目录===============================================================转载 2011-08-26 02:44:09 · 425 阅读 · 0 评论 -
常用WIN32API函数大全
常用WIN32API函数大全1. API之网络函数2. API之消息函数 3. API之文件处理函数4. API之打印函数 5. API之文本和字体函数 6. API之菜单函数 7. API之位图、图标和光栅运算函数 8. API之绘图函数 9转载 2011-09-17 17:07:39 · 885 阅读 · 0 评论 -
c 语言实现24位bmp图片加载,读写,放大缩小 .
原文链接地址:http://hi.baidu.com/erfolgreich/blog/item/ce94dbad02c0c3f7faed5010.htmlc 语言实现24位bmp图片加载,读写,放大缩小可用 microsoft visual c++ 6.0 建立Win3转载 2011-08-20 09:42:03 · 6837 阅读 · 1 评论 -
C语言宏定义技巧(常用宏定义)
写好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性 等等。下面列举一些成熟软件中常用得宏定义1,防止一个头文件被重复包含 #ifndef COMDEF_H #define COMDEF_H //头文件内容转载 2011-09-13 15:10:01 · 295 阅读 · 0 评论 -
回调函数
简介 对于很多初学者来说,往往觉得回调函数很神秘,很想知道回调函数的工作原理。本文将要解释什么是回调函数、它们有什么好处、为什么要使用它们等等问题,在开始之前,假设你已经熟知了函数指针。 什么是回调函数? 简而言之,回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数转载 2011-11-02 20:15:03 · 322 阅读 · 0 评论 -
Linux、Unix和Windows NT体系结构的比较
1. Linux系统结构 与Unix系统相似,Linux系统大致可分为三层:靠近硬件的底层是内核,即Linux操作系统常驻内存部分;中间层是内核之外的Shell层,亦即操作系统的系统程序部分;最高层是应用层,即用户程序部分,包括各种正文处理程序、语言编译程序以及游戏程序等。如图1所示。 图1 Linux系统结构 内核是Linux操作系统的主要部分转载 2011-11-02 20:34:47 · 6422 阅读 · 1 评论 -
设置串口属性
INT32 set_termios_attr(INT32 fd,INT32 nBits,INT32 stopBits,char oodeven,INT32 iBaudRate){ struct termios new_termios;/*备份串口终端属性*/if(tcgetattr(fd,&g_old_termios)){log_printf(ERROR_LEVE原创 2015-01-03 23:45:48 · 1630 阅读 · 0 评论 -
[zt] 什么是字节对齐,为什么要对齐? .
http://blog.csdn.net/xhfwr/archive/2006/07/23/963793.aspx一.什么是字节对齐,为什么要对齐? 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的转载 2012-04-10 00:03:22 · 385 阅读 · 0 评论 -
C++ 语言特性的性能分析
级别: 中级冯 宏华, 高级软件工程师, IBM 中国开发中心徐 莹, 开发经理, IBM 中国软件开发中心程 远, 高级软件工程师, IBM 软件开发中心汪 磊, 高级软件工程师, IBM 中国开发中心2007 年 11 月 29 日本章从 C++ 的一些语言特性来分析影响性能的方面。引言本书主要针对的是 C++ 程序的性能优化,深入介绍 C++ 程序性能优化转载 2012-03-29 13:49:29 · 539 阅读 · 0 评论 -
关于内存DC绘图防止屏幕闪烁说明(亦即双缓存技术) .
利用内存DC,进行绘图,从而减少闪烁,方法原理为: 此方法涉及到两个DC,屏幕DC和内存DC。把所要绘制的一切现在内存DC中进行绘制,之后全部搬到 屏幕DC中,从而把所有烦琐的绘制过程都在内存DC中完成了,用户在屏幕上看到的是一幅完整的图画,所以不可能出现 闪烁情况。期间,关键是这幅图画。这幅图画是从屏幕DC中创建出来的,只不画面的尺寸就是客户区域的大小,之后把 这幅画选入内存DC转载 2012-03-11 10:52:46 · 1223 阅读 · 0 评论 -
Visual Studio 2003/Visual Studio 2005常用快捷键(快捷方式)
Visual Studio 2003/Visual Studio 2005常用快捷键(快捷方式)调试快捷键F6: 生成解决方案Ctrl+F6: 生成当前项目F7: 查看代码Shift+F7: 查看窗体设计器F5: 启动调试Ctrl+F5: 开始执行(不调试)Shift+F5: 停止调试Ctrl+Shift+F5: 重启调试F9: 切换断点Ctrl+F9:转载 2012-02-22 20:27:10 · 362 阅读 · 0 评论 -
Visual C++线程同步技术剖析:临界区,时间,信号量,互斥量
使线程同步 在程序中使用多线程时,一般很少有多个线程能在其生命期内进行完全独立的操作。更多的情况是一些线程进行某些处理操作,而其他的线程必须对其处理结果进行了解。正常情况下对这种处理结果的了解应当在其处理任务完成后进行。 如果不采取适当的措施,其他线程往往会在线程处理任务结束前就去访问处理结果,这就很有可能得到有关处理结果的错误了解。例如,多个线程同时访问同一个全局变量,如果转载 2012-02-22 20:25:52 · 511 阅读 · 0 评论 -
深入探讨MFC消息循环和消息泵 .
首 先,应该清楚MFC的消息循环(::GetMessage,::PeekMessage),消息泵(CWinThread::PumpMessage)和 MFC的消息在窗口之间的路由是两件不同的事情。在MFC的应用程序中(应用程序类基于CWinThread继承),必须要有一个消息循环,他的作用是从应用程序的消息队列中读取消息,并把它派送出去(::DispatchMessage)。而消息路由是指消息派送转载 2012-02-22 00:25:18 · 417 阅读 · 0 评论 -
时间片轮转 / 多任务 多线程解释 /抢占、非抢占
时间片轮转调度是一种最古老,最简单,最公平且使用最广的算法。每个进程被分配一个时间段,称作它的时间片,即该进程允许运行的时间。如果在时间片结束时进程还在运行,则CPU将被剥夺并分配给另一个进程。如果进程在时间片结束前阻塞或结束,则CPU当即进行切换。调度程序所要做的就是维护一张就绪进程列表,当进程用完它的时间片后,它被移到队列的末尾。 时间片轮转调度中唯一有趣的一点是时间片的长度。从一个进程转载 2012-02-21 19:06:17 · 1400 阅读 · 0 评论 -
操作系统分类
原来实时系统是和抢占式系统是对应的 抢占式多任务操作系统: 在 Windows 3.1 中,多任务方式是“协作式多任务”,意思是说一个任务得到了 CPU 时间,除非它自己放弃使用 CPU ,否则将完全霸占 CPU ,所以任务之间需要协作——使用一段时间的 CPU ,放弃使用,其它的任务也如此,才能保证系统的正常运行;而在 Windows 95 中使用的就是“抢占式多任务”了,转载 2012-02-21 16:53:45 · 369 阅读 · 0 评论 -
Windows消息队列,UI线程,窗口以及消息处理方式总结 .
1.窗口 Windows程序是由一系列的窗口构成的,每个窗口都有自己的窗口过程,窗口过程就是一个拥有有固定 Signature 的 C函数,具体格式如下: LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam );转载 2012-02-21 16:50:31 · 389 阅读 · 0 评论 -
线程间通信
线程间通信可以通过下列三种方法: 1)使用全局变量实现线程间通信 2)使用消息实现线程间通信 3)使用CEvent类实现线程间通信 使用全局变量实现线程间通信: 定义一个全局变量,不同的线程间可以通过修改全局变量的值来进行通信。例如:定义一个控制线程的全局变量 volatile int threadController; 当 threadCo转载 2012-01-03 20:14:12 · 581 阅读 · 0 评论 -
实现多线程同步的三种方法及示例
http://www.programfan.com/blog/article.asp?id=237571、利用事件对象实现多线程的同步:#include#includeDWORD WINAPI FunProc1( LPVOID lpParameter // thread data);DWORD WINAPI FunProc2( LPVOID lpParame转载 2012-01-03 11:55:02 · 647 阅读 · 0 评论 -
编程技术面试的五大要点 .
编程技术面试的五大要点http://blog.csdn.net/guoxuequan/article/details/6875801(面试趣题) 文/ 何海涛扎实的基础知识、高质量的代码、清晰的思路、优化代码的能力、优秀的综合能力是编程技术面试的五大要点。找工作一直是一个热门话题。要想找到心仪的工作,难免需要经过多轮面试。编程面试是程序员面试过程中最为重要的一个环节。如果能在编转载 2011-12-08 10:12:05 · 361 阅读 · 0 评论 -
子类化:增强Edit控件为日期输入控件
http://www.vckbase.com/club/member.php?mod=logging&action=login&referer=%2Fcode%2Fdowncode%2Easp%3Fid%3D2270关键字:子类化,Edit控件,日期 MFC所提供的组件已经可以完成很多功能了,但有时候我们还需要这些控件按我们自己的意图去处理。比如EDIT控件,虽然我们可以设置EDI转载 2011-11-04 23:36:14 · 657 阅读 · 0 评论 -
C++多态技术详解
C++多态技术在下面的这篇文章里描述得很清晰,但它忽略了技术细节,即多态是如何实现的?在看完第一章之后,虚函数和虚函数表是下一站。第一章 C++多态技术C++多态技术作者:荣耀提交者:eastvc 发布日期:2003-12-14 19:38:12原文出处:http://www.royaloo.com/articles/articles_2003/PolymorphismIn转载 2011-11-02 10:06:17 · 322 阅读 · 0 评论 -
编译器
简单讲,编译器就是将“高级语言”翻译为“机器语言(低级语言)”的程序。一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 汇编程序 (assembler) → 目标代码 (object code) → 链接器 (Linker) → 可执行程序 (executables)编译器可以生成用来在与编译器本转载 2011-11-02 22:24:46 · 534 阅读 · 0 评论 -
VC积累
VC积累 1.状态栏上显示时间 void CMainFrame::OnUpdateTime(CCmdUI* pCmdUI) { CTime timeCur=CTime::GetCurrentTime(); char szOut[20]; sprintf(转载 2011-08-04 11:30:12 · 736 阅读 · 0 评论 -
VC中动态改变控件和对话框字体(大小)
1 VC的对话框字体设置对所有控件都有效,你不能单独地改变某个静态文本的字体。对于你的问题,需要首先用CreateFont来建立一个字体对象,然后调用控件的SetFont,就可以了。 例子: 1、改静态文体的ID,如:IDC_STATIC1转载 2011-09-03 11:52:28 · 6857 阅读 · 1 评论 -
VC++ 安装程序制作
VC++ 安装程序制作2009-10-25 10:40当用VC++完成应用程序的编制后,如果不为它制作一个安装程序,似乎感到缺少一点什么, 你也许急于到市面找制作安装程序的工具,如"CreateInstall"、" iSetup"等,事实上,VC++6转载 2011-08-02 17:06:22 · 625 阅读 · 0 评论 -
组件,控件,com,插件,ActiveX,这五个有什么区别呢?
<br />组件包括控件,还有一些类,<br />控件一些做好的供你用的可视化的对象,像按钮什么的,<br />com:是一种协议,使不同厂家生产的activex控件能互用,<br />插件:对ide的补充,<br />ActiveX:一种其他厂家或编制者生产的自定义的控件。<br /> <br />ActiveX是Microsoft对于一系列策略性面向对象程序技术和工具的称呼,其中主要的技术是组件对象模型(COM)。在有目录和其它支持的网络中,COM变成了分布式COM(DCOM)。在创建包括ActiveX转载 2011-05-27 15:56:00 · 1360 阅读 · 0 评论 -
VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程
<br />开篇语:最近在弄ocx控件发布到asp.net网站上使用,就是用户在使用过程中,自动下载安装ocx控件。(此文章也是总结了网上好多人写的文章,我只是汇总一下,加上部分自己的东西,在这里感谢所有在网上发表相关内容的朋友们。)<br />ActiveX 控件用于Web的过程是将控件嵌入主页中,用户通过浏览器访问该主页时,将主页中的控件下载,并在用户机器上注册,以后就可在用户的浏览器上运行。控件下载一次后就驻留在用户本地机器上,下次再访问相同的主页时,可不再下载该控件,而是直接运行用户本地的控件。这里转载 2011-05-28 16:43:00 · 599 阅读 · 0 评论