C++
Jason.leo
系统平台:Linux RT-Thread seL4 Nuttx VxWorks freeRTOS μCOS Wince
硬件平台:ARM STM32 51
语言平台:C C++ Python shell
展开
-
2021年底总结
自从2011年注册CSDN到现在,断断续续写博客11年。看了下历年转发和原创的文章数据,也就刚工作的时候发的最多,2013年到2018年在需要保密的特殊行业,而且上网受限,所以发的文章很少,2018年到2021年在外企,忙得跟狗似的,也顾不上写博客。截止2022年1月27日博客数据如下:这个成绩,并不是我博客写得多好,而是熬年头熬出来,庆幸经历这么多年博客账号还没丢。出于种种原因,我准备搭建自己的技术博客,以后CSDN就会很少发文章了,跟各位说声再见。新博客地址: ......原创 2022-01-27 09:31:07 · 386 阅读 · 0 评论 -
个人职业规划的困惑-2013
今天初七,是2013年上班的第一天。2010年1月份(大四下学期)开始上班,从事用友软件的运行维护工作,一直到同年的9月份辞职,结束了我的第一份工作。在这段时间里,主要用到了学校里学的数据库知识,写代码不多。也正是这个原因,怕荒废了专业,想从事直接的软件开发工作。于是就来到了目前的公司。在这个事业单位里工作两年多一直到现在。虽然大学里学的是软件工程,跟硬件几乎一点关系都没有,但是由于工作需要以及自身爱好,自学了单片机(51、stm32)软件开发、ARM嵌入式wince、Linux驱动及应用程序开发。如果仅仅原创 2022-01-27 09:03:40 · 255 阅读 · 0 评论 -
函数的返回值存储问题
我们往往将函数里面的某个变量作为函数的返回值,但是我们知道,函数内部定义的变量生命周期只存在于函数体内,出了这个函数生命周期就结束了,将其作为返回值,难道不会出问题吗? 如果不会出问题,那这个返回值存储在哪里呢? 之所以不会出问题,是因为什么呢,难道被作为返回值的变量存储位置发生了变化? 返回值的存储位置是固定的吗? 能够存储多大容量的返回值?带着上面的疑问,我准备研究一下。调用函数时,函数的返回值存放的位置具体在哪里呢?按照概念来说,函数的返回值应该放在被调用函数运行结束之后,主调函数原创 2022-01-27 08:45:26 · 967 阅读 · 0 评论 -
pthread library undefined reference
当使用cmake编译多线程程序时,比如ThreadPool的程序,需要手动添加pthread库,如果手动添加,就会报错:undefined reference to `pthread_create'出现这个问题的原因是在链接阶段,函数对应的库文件搜索不到,找不到这个函数的具体实现。解决方式就是在cmake文件中添加对应的库。这里需要指定的是Threads库,参考代码cmake_minimum_required(VERSION 3.10)project(ThreadPoolTe.原创 2021-05-04 21:48:02 · 175 阅读 · 0 评论 -
VC PlaySound
VC播放声音函数PlaySound和sndPlaySound的用法一、PlaySound函数的声明为:BOOL PlaySound(LPCSTR pszSound,HMODULE hmod,DWORD fdwSound);参数说明:pszSound:是指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAVE资源的名字,或是内存中声音数据的指针,或是转载 2013-07-20 00:22:44 · 634 阅读 · 0 评论 -
VC6 OPENCV 1.0
VC6下安装与配置Wikipedia,自由的百科全书本手册适应 OpenCV 1.0 安装。目录[隐藏]1 安装Visual C++ 6.02 安装OpenCV3 配置Windows环境变量4 配置Visual C++ 6.04.1 全局设置4.2 项目设置[编辑]安装Visua转载 2013-03-22 19:44:26 · 622 阅读 · 0 评论 -
VC 关于回车键的问题
回车键至下一个EditBOOL CMyDlg::PreTranslateMessage(MSG* pMsg) {// TODO: Add your specialized code here and/or call the base classif (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_RETURN){转载 2013-02-02 17:16:03 · 557 阅读 · 0 评论 -
VC6.0同时打开两个工程方法
问:vc能否同时打开两个工程, 或点击第二项目时,不会关闭掉已经打开的项目,怎样让它而另起一个IDE答:1)、XP系统:是这样,控制面板---文件夹选项----文件类型----找到DSW---高级---- ----编辑----取消使用DDE就可以了。 2)、Win7系统:在Win7操作系统下,如果是以Administrator登陆,则VC6转载 2013-01-11 09:03:22 · 3076 阅读 · 0 评论 -
VC 延时方法
延时处理不好会使程序像死机一样,找了一个方法,还不错。记录下来。MSG msg;DWORD dwTimeStarted;dwTimeStarted = ::GetTickCount();UINT LFactor=50; //你改这里就行了while (::GetTickCount() - dwTimeStarted < LFactor) { if (Peek转载 2012-10-12 14:31:16 · 726 阅读 · 0 评论 -
vc20个使用技巧
1.知道控件id号怎么快速的在资源里找到对应的控件解决方法:点击菜单中View->Resource Symbols ,在对话框中选择要找的ID点击按钮View Use便可。2.打的断点太多,太乱,打开VC也会报内存被非法访问的错误。想编辑自己的断点解决方法:点击菜单中Edit->Breakpoints ,在对话框中选择Location在,Breakpoint选择要删除的IDs中转载 2012-10-12 08:57:32 · 3785 阅读 · 0 评论 -
在VC中更改可执行程序的图标
我这有两种方法:一种是:更改资源文件的文件,将想要的图标,拷到资源目录下,更名,将原来的删掉. 第二种是实在没办法的情况,写下rc文件首先把你的图标拷贝到当前目录(程序目录)。然后新建个script.rc 和 resource.h 这两个文件 假设图标的名称为music.ico然后复制下面的代码到这两个文件中:Code: // 这个为Script.rc的代码转载 2012-09-18 22:38:48 · 1290 阅读 · 0 评论 -
vc自定义消息的发送与接收的方法实现
vc自定义消息的发送与接收的方法实现以下用一个自创的对话框类(MyMessageDlg)向视图类(MessageTestView)发送自定义消息为例,说明这两种不同方法的自定义消息的消息传递的方法一:使用ON_MESSAGE使用ON_MESSAGE响应消息,必须配合定义消息#define WM_MY_MESSAGE (WM_USER+100)对于发送消息转载 2012-10-08 14:56:46 · 668 阅读 · 0 评论 -
VC6.0编写Windows服务
VC6.0编写Windows服务 下面介绍使用VC++开发Windows服务程序。 首先运行VC++6,选择新建工程,在出现的下面窗口中选择”ATL COM AppWizard“,并选择工程放置位置和相应的工程名,然后选择确定按钮。此时出现如下图窗口界面,在此界面中选择”服务(EXE)“,然后选择完成按钮。在接下来的窗口中选择确定按钮。转载 2013-09-15 07:06:12 · 1170 阅读 · 0 评论 -
CDC类的使用
void CDrawView::OnLButtonUp(UINT nFlags, CPoint point) {1.直接调DC HDC hdc;hdc=::GetDC(m_hWnd);//每个从CWnd类派生出来的类都有一个内部转载 2013-09-24 07:03:57 · 804 阅读 · 0 评论 -
ubuntu时间不对
我在虚拟机上安装了ubuntu10.04.3,一直采用的是默认安装,安装完后发现时间不对。使用 $date命令发现时间也不对,不过也不是网上说的与真实时间相差8个小时。 连网从ubuntu服务器上同步时间 sudo ntpdate ntp.ubuntu.com sudo ntpdate time.nist.gov 设置电脑的时区为上海 sudo cp /usr/shar转载 2013-11-16 22:19:22 · 686 阅读 · 0 评论 -
可重入函数与不可重入函数(转)
转自:http://www.cppblog.com/franksunny/archive/2007/08/03/29269.html主要用于多任务环境中,一个可重入的函数简单来说就是可以被中断的函数,也就是说,可以在这个函数执行的任何时刻中断它,转入OS调度下去执行另外一段代码,而返回控制时不会出现什么错误;而不可重入的函数由于使用了一些系统资源,比如全局变量区,中断向量表等,所以它如果被转载 2016-07-09 17:51:44 · 733 阅读 · 0 评论 -
VC++ 6.0支持Unicode
VC++ 6.0支持Unicode编程,但默认的是ANSI,所以开发人员只需要稍微改变一下编写代码的习惯便可以轻松编写支持UNICODE的应用程序。 1. 安装完成后:需要把VC98\MFC\LIB下的MFC42U*.*手动拷贝到对应的安装目录下 2. 为工程添加UNICODE和_UNICODE预处理选项:打开[工程]->[设置…]对话框,在C/C++标签对话框的“预处理转载 2016-04-09 06:47:51 · 481 阅读 · 0 评论 -
linux 下DSP音频处理
一、数字音频音频信号是一种连续变化的模拟信号,但计算机只能处理和记录二进制的数字信号,由自然音源得到的音频信号必须经过一定的变换,成为数字音频信号之后,才能送到计算机中作进一步的处理。数字音频系统通过将声波的波型转换成一系列二进制数据,来实现对原始声音的重现,实现这一步骤的设备常被称为模/数转换器(A/D)。A/D转换器以每秒钟上万次的速率对声波进行采样,每个采样点都记录下了原始模转载 2015-03-15 12:10:50 · 1933 阅读 · 0 评论 -
VC++、MFC、COM和ATL的区别
一、什么是MFC 微软基础类(Microsoft Foundation Classes),实际上是微软提供的,用于在C++环境下编写应用程序的一个框架和引擎,VC++是WinOS下开发人员使用的专业C++ SDK(SDK,Standard SoftWare Develop Kit,专业软件开发平台),MFC就是挂在它之上的一个输助软件开发包,MFC作为与VC++血肉相连的部分(注转载 2014-10-20 07:30:41 · 627 阅读 · 0 评论 -
VC无闪烁刷屏技术的实现
在实现绘图的过程中,显示的图形总是会闪烁,笔者曾经被这个问题折磨了好久,通过向高手请教,搜索资料,问题基本解决,现将文档整理出来以供大家参考.1.显示的图形为什么会闪烁 我们的绘图过程大多放在OnDraw或者OnPaint函数中,OnDraw在进行屏幕显示时是由OnPaint进行调用的。当窗口由于任何原因需要重绘时,总是先用背景色将显示区清除,然后才调用OnPaint,而背景色往往与转载 2014-10-15 22:01:34 · 522 阅读 · 0 评论 -
VC6中动态创建控件并响应其消息(button/combo)
描述:本文讲述了如何在VC6下动态创建控件并响应其消息。 技术实现: 在基于对话框的程序里我们创建控件的方法大多是直接拉一个控件上去,然后利用ClassWizard给控件添加变量及进行消息映射等。但在有些时候(如单文档或多文档程序)我们就无法直接拉这个控件,更无法用ClassWizard给他添加变量或进行消息映射了。在本文中我们将以在对话框上动态添加一个按钮(CButton)与一个转载 2014-10-24 23:05:59 · 1698 阅读 · 0 评论 -
box2d 模拟真实世界的物体碰撞 类似愤怒的小鸟
1box2dBox2D是一个用于模拟2D刚体物体的C++引擎。作者为Erin Catto。Box2D使用zlib许可。zlib许可是一个自由软件授权协议,但并非copyleft。它已被用于蜡笔物理学、愤怒的小鸟、Rolando、Fantastic Contraption、Incredibots、Tiny Wings、Transformice、Happy Wheels等游戏的开发转载 2013-12-14 10:58:17 · 1690 阅读 · 0 评论 -
格式化原理
有高级和低级格式化之分:低级格式化:低级格式化就是将空白的磁盘划分出柱面和磁道,再将磁道划分为若干个扇区,每个扇区又划分出标识部分ID、间隔区GAP和数据区DATA等。可见,低级格式化是高级格式化之前的一件工作,它只能够在DOS环境来完成。而且低级格式化只能针对一块硬盘而不能支持单独的某一个分区。每块硬盘在出厂时,已由硬盘生产商进行低级格式化,因此通常使用者无需再进行低级格式化操作.高级格转载 2013-12-15 09:21:57 · 6520 阅读 · 0 评论 -
vc 十进制 二进制 十六进制 之间的相互转换
//将16进制的一个字符转换为十进制的数unsigned char CConvNumsDlg::BtoH(char ch){//0-9if (ch >= '0' && ch return (ch - '0'); //9-15if (ch >= 'A' && ch return (ch - 'A' + 0xA); //9-15原创 2012-08-26 12:02:19 · 3651 阅读 · 0 评论 -
c++如何生成release版本
1、确定Debug版无错,注意Trace等调试方法可能造成的错误2、Release版的exe文件链接的是标准的MFC DLL,比如MFC42.dll。这些DLL在安装Windows的时候,就会装到系统中。因此,这样的exe在没安装Visual C++ 6.0 的机器上也能运行。而Debug版不能,除非使用静态链接3、生成release版的步骤:“工程”——“配置”——“常规”——“使用转载 2012-08-22 19:28:53 · 9786 阅读 · 0 评论 -
VS2008简体中文正式版序列号-及破解方法
VS2008简体中文正式版序列号-及破解方法 标签: vs 序列号 2008 -->日志原文:http://blog.sohu.com/people/!ZGFpeDUyMTFAY2hpbmFyZW4uY29t/101561525.htmlVS2008简体中文正式版序列号1.Visual Studio 2008 Professional Ed转载 2012-01-06 09:42:32 · 594 阅读 · 0 评论 -
MFC如何进行文件操作
MFC如何进行文件操作 如何进行文件操作各种关于文件的操作在程序设计中十分常见,如果能对这些操作都了如指掌,就可以根据实际情况找到最佳的解决方案,从而可以在较短的时间内编写出高效的代码。本文对Visual C++中有关文件操作进行了全面的介绍,并对在文件操作中经常遇到的一些疑难问题进行了详细分析。 1. 文件的查找 当对一个文件操作时,如果不知道转载 2012-01-04 14:19:18 · 1235 阅读 · 0 评论 -
Format出现FFFFFF解决办法
format出现FFFFFF解决办法(2010-06-17 12:25:03) C89标准规定,short和char会被自动提升为int(整形化,类似地,float也会自动提升为double),这样做是为了便于编译器进行优化,使变量的长度尽可能一样,尽可能提升所产生代码的效率。data[i]的值当它是正数的时候也同样进行了符号扩展的,只不过正数是前面加0,用%02x打印的转载 2012-01-30 12:02:13 · 1611 阅读 · 0 评论 -
WinCE驱动程序的分类
发 布 时 间 : 2009-04-29 来 源 : 来自网络 作 者 : 匿名 浏 览 : 最近有一些同学发邮件问我,驱动调试助手到底能动态加载哪些驱动,为什么在加载USB设备驱动时总是失败。要解释这个问题,首先得弄清楚WinCE中驱动的相关概念。本文将主要介绍WinCE下驱动程序的分类。 驱动程序是介于操作系统和设备之间的一 个代码层,它的主要作用是为操作转载 2012-01-10 19:59:10 · 366 阅读 · 0 评论 -
跟我一起写 Makefile
发 布 时 间 : 2008-11-19 来 源 : 来自网络 作 者 : 匿名 浏 览 : 1377 概述——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成转载 2012-01-10 20:04:27 · 863 阅读 · 0 评论 -
句柄与指针--很牛的解释
打个比方: 你朋友给你写信,他直接写你名字邮局是找不到你的,他就写出你家的门牌号,邮局通过门牌就能找到你了,那么门牌就是指针,而你本身就是指针指向的内存值. 你由于去砸110车窗户被关进局子(打比方呵呵,别打我~),和你一起的有老外,有外星人,大家名字都很长,很难记,监狱长为了方便,给每个犯人一个标号,比如你是0001,而另一个火星人是0002,那么以后监狱长碰到0001就知道是你了,转载 2011-12-16 19:57:56 · 470 阅读 · 0 评论 -
error LNK2019: unresolved external symbol _WinMain referenced in function
error LNK2019: unresolved external symbol _WinMain referenced in function _WinMainCRTStartup corelibc.lib(pegwmain.obj) : error LNK2019: unresolved external symbol _WinMain referenced原创 2011-12-12 16:21:43 · 977 阅读 · 1 评论 -
MFC树形控件详细分析与代码实现
MFC树形控件详细分析与代码实现 2010-04-07 09:12:12| 分类:C++ | 标签:|字号大中小 订阅 树视图控件具有层次分明、结构化强、美观、灵活等特点,在各种操作系统中广为应用,是人们最熟悉、最常应用的控件。从树视图控件出现到现在,它们一直被认为非常复杂并难于编程,与其它如编辑框、单选钮、复选框等控件进行比较,要使其正常运行,翻译 2011-11-27 11:56:17 · 1073 阅读 · 0 评论 -
关于MFC画图的一些总结,MFC (Draw)
关于MFC画图的一些总结,MFC (Draw) 2010-02-27 19:24:44| 分类:默认分类 | 标签:|字号大中小 订阅关于MFC画图的一些总结,MFC (Draw)2009-06-08 01:59来源:http://www.cnblogs.com/volnet/articles/cpp_about_draw.ht转载 2011-11-27 11:55:09 · 864 阅读 · 0 评论 -
Windows 窗体(Windows Form)/MFC 编程差异
Windows 窗体(Windows Form)/MFC 编程差异 2009-11-16 10:12:03| 分类:MFC软件开发 | 标签:|字号大中小 订阅在 MFC 中使用 Windows 窗体用户控件中的主题描述 MFC 对 Windows 窗体的支持。如果您不熟悉 .NET Framework 或 MFC 编程,可以从本主题了解两者之间编程差异的翻译 2011-11-27 11:48:19 · 3225 阅读 · 1 评论 -
VB与VC混合编程中处理消息的方法
VB 版 (精华区)发信人: coolpine (九头虫), 信区: VB标 题: VB与VC混合编程中处理消息的方法 VB与VC混合编程中处理消息的方法 现在越来越多的人采用VB与VC的混合编程:用VB快速开发出漂亮的界面以及外围处理程序,再用VC编写底层的各种操作,例如内存的操作、IO端口的操作等,VC中还可以嵌入汇编语言进行更底层的操作。 一转载 2012-02-27 16:46:46 · 889 阅读 · 0 评论 -
C 内存管理详解
C 内存管理详解 程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。 1、内存分配方式 内存分配方式有三种: (1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。 (2)在栈上创转载 2012-03-01 08:49:13 · 669 阅读 · 0 评论 -
VC:设置Tab 控件顺序(TabOrder)
VC:设置Tab 控件顺序(TabOrder)标签: 杂谈 分类: VC打开资源的对话框,按Ctrl+D,然后通过鼠标点击控件来设置。在动态创建控件的时候STYLE设置成为WS_CHILD|WS_VISIBLE|WS_TABSTOP,其中WS_TABSTOP是影响TAB顺序的。先创建的控件TAB顺序在前。如果要颠倒TAB顺序的话,就把在创建控件时转载 2012-08-17 12:47:50 · 3385 阅读 · 0 评论 -
wince中控制输入面板的隐藏和显示
SipShowIM(SIPF_ON); //面板显示SipShowIM(SIPF_OFF);//面板隐藏 //****************************************************************** // 控制输入面板 // SIPF_ON 此面板可见 // SIPF_DOCKED 此面板原创 2011-12-12 16:45:03 · 1924 阅读 · 0 评论 -
wince之驱动操作
在给驱动写测试程序的时候,在驱动中宏定义的项,如led驱动的宏定义,#define IO_CTL_LED_1_ON 0x01#define IO_CTL_LED_1_OFF 0x06在wince下的应用程序宏定义也要根据这个来定义,否则无法操作,这个是根据我的试验验证过的。原创 2012-07-11 16:29:53 · 451 阅读 · 0 评论