- 博客(51)
- 资源 (8)
- 收藏
- 关注
原创 C与C++区别(1)
前言:今天在将C语言工程转换为C++时遇到了一些问题,为避免重蹈覆辙,故记录下来。 问题:1. VS中C工程和C++工程如何区别? 2. LNK2005错误如何解决?分析问题:C工程和C++工程的区别在于源文件的后缀名,后缀为.c就是C工程;后缀为.cpp就是C++工程。也就是说,对于.c的源文件,VS会使用C编译器编译;而.cpp元文件,VS会使用C++编译器编译。2. LNK2005
2017-06-30 18:04:29 643
原创 C++ 线程 共享资源保护
一、C++互斥量 < mutex >头文件介绍 Mutex 系列类(四种) - std::mutex,最基本的 Mutex 类。 - std::recursive_mutex,递归 Mutex 类。 - std::time_mutex,定时 Mutex 类。 - std::recursive_timed_mutex,定时递归 Mutex 类。Lock 类(两种) - 列表内容
2017-04-16 18:02:56 1544
原创 TLE二行轨道根数格式
NORAD Two-Line Element Set FormatData for each satellite consists of three lines
2017-04-11 16:44:57 23489 4
原创 VC++ 文件读写总结
一、文件打开函数概述1. _open:_open 函数将打开由 filename 指定的文件并使其做好读写准备2._sopen:_sopen 函数将打开由 filename 指定的文件并使该文件做好共享的读写准备3.fopen:fopen 函数打开 filename指定的文件4.freopen:freopen函数将关闭当前与相关联的文件stream,并重新指
2017-04-02 11:55:04 5699
转载 读写锁(read-write lock)机制-----多线程同步问题的解决
转载地址:http://blog.chinaunix.net/uid-27177626-id-3791049.html读写锁(read-write lock)一 综述 在一些程序中存在读者写者问题,也就是说,对某些资源的访问会 存在两种可能的情况,一种是访问必须是排它行的,就是独占的意思,这称作写操作;另一种情况就是访问方式可以是共享的,就是说可以有多个线程同时去访问某个资源,
2017-04-02 10:35:41 556
转载 C++中delete和delete[]的区别
一直对C++中的delete和delete[]的区别不甚了解,今天遇到了,上网查了一下,得出了结论。做个备份,以免丢失。 C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete,回收用 new[] 分配的一组对象的内存空间的时候用 delete[]。 关于 new[] 和 delete[],其中又分为两种情况:(1) 为基本数据类型分配和回收空间;(2)
2013-04-09 16:48:51 588
原创 如何在C++程序中设置XP样式?
在VS中新建的C++工程默认是经典样式,那么如何设置C++样式呢?方法一:在头文件stdafx.h中添加如下代码,就可实现XP样式。#if defined _M_IX86#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='
2013-04-09 15:49:32 1420
转载 VC中Picture Control透明背景实现
VC中Picture Control透明背景实现在VC中使用Picture Control来放置图片时想做成透明背景的,选择Bitmap类型时是图片原样显示出来的,想做成透明的Icon然后在Picture Control中选择Icon类型,可是控件缩成了一个图标。最后只能选择Bitmap类型,因为用这种模式可以把很多图片使用多个Picture Control组合起来。在网上找了一些资料
2013-03-15 15:12:03 7033 3
原创 用一个对话框显示后台线程进度的实现
功能描述:在后台有一个线程处理数据,现在需要在主线程弹出对话框显示线程的进度,线程处理完后会关闭对话框,在对话框上可以通过单击“取消”按钮结束线程。功能实现:1.主线程中的步骤:(1)在主线程新建一个对话框。CDlgWait dlgWait;// 新建对话框(2)创建一个线程,将对话框作为参数传递进去(此处传递一个全局的结构体,结构体中保存dlgWait的地址)。m_exp
2013-03-14 11:35:13 2088
转载 GetTextMetrics 和 GetTextExtent的区别
GetTextMetrics 和 GetTextExtent的区别 (c++计算字符串像数)2009-05-19 15:55使用函数GetTextExtent可以计算出一个特定的文本行的宽度和高度,使用函数GetTextMetrics可以得到字符的有关尺寸,这两个函数的使用如下:GetTextExtent 函数用途:该函数使用设备对象dc当前使用的字体计算一个文本行宽度和高度(逻辑
2013-03-13 11:33:20 680
转载 用户自定义消息,以及消息传递的参数设定
有的时候窗口需要收发消息来达到某种效果或目的。而且用户可以自定义消息,并可以携带参数。此文浅谈介绍如何自定义消息和参数的设置。 /////////////////////////////////////////////////////////新建对话框工程,命名为Dialog DialogDlg.h类头文件中定义客户消息宏 ,如下#define WM_MYOWNMESS
2013-03-12 14:58:01 676
原创 VS2008添加GIF资源
1.问题:最近尝试显示GIF动画,从网上找到CPictureEX类,可以显示GIF动画,Demo中使用也很简单。但是,在实际使用时却遇到问题,GIF动态资源显示时变为了静态GIF资源。2.问题分析:经过多次反复实践,最终发现是在VS2008中导入GIF资源时出现了问题。在导入GIF资源时,VS2008会自动将GIF转换为静态GIF,甚至会改变GIF文件(你会发现再用图片查看器打开原来的文件时显
2013-03-12 10:15:36 3775 1
转载 在 VS2005 的“资源视图”中添加 GIF 文件
1、打开资源视图,右项目,选择“添加资源”。 VS2005 的鈥溩试词油尖澲刑砑 GIF 文件" title="在 VS2005 的鈥溩试词油尖澲刑砑 GIF 文件" style="margin:0px; padding:0px; border:0px; list-style:none">2、在打开的“添加资源”对话框中,选择“自定义”,在“新建自定义资源”框中输入”GIF”,这里
2013-03-12 09:32:44 2255
转载 COM组件开发实践(一)
Preface 因为项目需要,开始从事ActiveX方面的工作,看了一些资料,可惜都是些COM原理方面的,没有切合实际动手的东西,在CodeProject上读完David Marcionek的文章【1】后,收获良多,但也遇到一些恼人的小问题,因此在其基础上就一些易错点做些小注解。本文版权归David Marcionek所有。简介 本文目的在于让你快速掌握ActiveX控件开发
2013-03-12 09:28:33 620
转载 在 MFC 和 ATL 工程中使用动画GIF
简介本文将介绍两个 C++ 类―― CPictureEx 和 CPictureExWnd,使用它们可以在 MFC 和 ATL 工程中使用动画GIF效果。CPictureEx 是一个为 MFC 程序使用的 C++ 类,对于一些需要使用JPEG 和 GIF 图像格式作为 banner 的应用程序可以借助这个类来实现。对于静态 banner 的显示使用 OleLoadPicture 函数和 IP
2013-03-11 15:13:25 918
转载 c#无标题窗体点击任务栏图标正常最小化或还原
原文地址:http://blog.sina.com.cn/s/blog_4982f49901013wlj.htmlFormBorderStyle等于System.Windows.Forms.FormBorderStyle.None的窗体,点击任务栏图标的时候,是不能象标准窗体那样最小化或还原的。protected override CreateParams CreatePara
2013-03-07 17:27:14 1081
转载 关于WS_CLIPCHILDREN和WS_CLIPSIBLINGS的理解
原文出处:http://www.cnblogs.com/helloj2ee/archive/2009/05/29/1491822.html我是个喜欢瞎琢磨的人。尤其是这几天心情非常郁闷。于是开始琢磨了…….琢磨的问题就是WS_CLIPCHILDREN和WS_CLIPSIBLINGS两种窗口样式的理解。 1.求助MSDN我的第一步当然是求助MSDN。在MSDN里面
2013-03-07 10:06:40 647
原创 wxWidgets编译注意问题
1.用VS命令行编译wxWidgets时,需要先修改路径include\wx\msw下的setup.h文件。将wxUSE_UNICODE和wxUSE_UNICODE_MSLU宏修改为对应的编译方式,Unicode下编译修改值为1,多字节下编译修改为0,然后再输入编译命令。如果不修改,虽然在编译命令中UNICODE=1时也能通过编译,但在与MFC混合使用的是否会出现编译错误。
2013-01-26 14:32:31 679
转载 改变 CListCtrl、CHeaderCtrl 高度、字体、颜色和背景
原文出处:http://www.vckbase.com/index.php/wv/1550一、 实现过程1.表头修改新建一个MFC类CHeaderCtrlCl,其基类为CHeaderCtrl,响应OnPaint消息实现自绘,实现代码请看源代码(由于代码较占篇幅,所以就不贴上来了,抱歉),在头文件中定义函数LRESULT OnLayout( WPARAM wParam, LP
2013-01-10 15:53:42 1761
转载 使用VC++ 2010创建Ribbon界面
使用VC++ 2010创建Ribbon界面微软声称这种新的用户界面能够使用户更容易地使用软件的各项常用功能,例如Word 2007中的保存,设置格式,插入图片等常用功能,都可以从Ribbon界面快速地访问到,从而提高用户的生产效率。 创建MFC应用程序项目。随着Office 2007的发布。随着Office 2007的发布,它改变了以往传统的下拉式菜单用户界面,取而代之的是全新
2012-12-14 09:16:20 4741 1
转载 VC WM_CLOSE,WM_QUIT,WM_DESTROY三个消息什么区别?
一、WM_DESTROY 是关闭程序的WM_CLOSE 是关闭窗口的WM_QUIT 是关闭消息环的以下是程式的死亡:1. 使用者选按【File/Close】,於是发出 WM_CLOSE。2. CMyFrameWnd 并没有设置WM_CLOSE 处理常式,于是交给预设之处理常式。3. 预设函式对于WM_CLOSE 的处理方式是呼叫 ::
2012-12-05 15:44:21 3059 1
转载 解决透明static控件重叠问题
解决透明static控件重叠问题 C++代码 HBRUSH CStadus::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); // TODO: Change any
2012-11-28 09:44:54 742
转载 在C++中实现.NET风格的委托
引言 在.NET中,委托被用来实现事件处理。它允许一个类(方法)先注册一个事件,然后当此事件被引发时此注册的方法就会被调用。在非.Net环境的C++中,这并不是一件容易的事,尤其是类的非静态成员函数,要做为回调函数就更困难了。本文的目标就是给出一种解决方案, 使类的静态成员函数,非静态成员函数,还有类非成员函数都能像回调函数一样使用。这个实现非常重视类型安全,为了保持类型安全我们省去了某
2012-10-25 14:50:32 657
转载 实现C++中的事件委托机制
摘要: 介绍了事件委托机制的需求,各种解决方案的演变,最终提出模板化的事件委托机制,并给出较详细的进化过程和原理说明。关键词: C++,委托,委托器,事件器,模板第一章 基础版实现在平时的工作中,我们经常会遇到以下情况void Do(int event_id){ …}void OnEvent(int event_id){ Do(event_i
2012-10-25 14:28:08 4567 1
转载 VC中退出应用程序-几种很有用的方法
VC中退出应用程序-几种很有用的方法1、对话框用 CDialog::OnOk(); Doc/View用 OnClose();2、PostQuitMessage(0);//最常用 PostMessage(WM_QUIT,0,0);//最常用 ::SendMessage(AfxGetMainWnd()->m_hWnd,WM_CL
2012-09-24 18:06:10 688
原创 指针常量与常量指针以及typedef定义的指针
一、指针常量与常量指针。char string[4] = "abc";//常量指针const char* c1 = string;√ c1++;//常量指针可以改变其指向× (*c1)++;//常量指针指向的值为常量不可以修改,VS提示:表达式必须是可以修改的左值//指针常量char* const c2 = string;× c2++;//指针常量表示'c2'本身是
2012-09-08 16:29:16 522
转载 C/C++基础知识:typedef用法小结
第一、四个用途用途一:定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, // 和一个字符变量;以下则可行:typedef char* PCHAR; // 一般用大写PCHAR pa, pb; // 可行,同时声明了两个指向字符变量的指针虽然:
2012-09-08 15:08:34 560
转载 typedef和#define的用法与区别
typedef和#define的用法与区别 一、typedef的用法在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像:typedef int INT;typedef in
2012-09-08 14:28:55 228
转载 assert() 函数用法
assert() 函数用法 assert宏的原型定义在assert.h中,其作用是如果它的条件返回错误,则终止程序执行. 原型定义: #include "assert.h" void assert( int expression ); assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息
2012-09-07 15:37:34 335
转载 UML类图详解
UML类图详解这是关于统一建模语言、即UML 里采用的基本图的文章。在这篇文章中,我将会讨论结构图,这是已经在 UML 2 中提出的一种新图种类。由于本系列文章的目的是使人们了解记号元素及它们的含意,该文主要关注类图。你很快就会知道这样做的理由。随后的文章将会覆盖结构范畴中包含的其它图。我也想提醒读者,这一系列文章是关于 UML 记号元素的,所以这些文章并不意味着为建模的最好方式提供指
2012-09-06 12:36:08 491
转载 UML类图关系大全
UML类图关系大全1、关联双向关联:C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法。在GOF的设计模式书上是这样描述的:虽然在分析阶段这种关系是适用的,但我们觉得它对于描述设计模式内的类关系来说显得太抽象了,因为在设计阶段关联关系必须被映射为对象引用或指针。对象引用本身就是有向的,更适合表达我们所讨论的那种关系。所以这种关系在设计的时候比较少用到,关
2012-09-06 09:04:24 270
转载 UML类图几种关系的总结
UML类图几种关系的总结 在UML类图中,常见的有以下几种关系:泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 1.泛化(Generalization)【泛化关系】:是一种继承关系,它指定了
2012-09-06 09:03:19 542
转载 WideCharToMultiByte和MultiByteToWideChar函数的用法
WideCharToMultiByte和MultiByteToWideChar函数的用法为了支持Unicode编码,需要多字节与宽字节之间的相互转换。这两个系统函数在使用时需要指定代码页,在实际应用过程中遇到乱码问题,然后重新阅读《Windows核心编程》,总结出正确的用法。WideCharToMultiByte的代码页用来标记与新转换的字符串相关的代码页。MultiByt
2012-09-03 16:48:43 399
转载 VC:设置光标(鼠标)形状
VC:设置光标(鼠标)形状 一、从文件加载光标图标HCURSOR hcur=::LoadCursorFromFile("AniCur.ani"); //加载光标 ::SetClassLong(GetSafeHwnd(),GCL_HCURSOR,(LONG)hcur);二、加载系统光标SetCursor(LoadCu
2012-09-03 16:12:44 8502
原创 失去和得到焦点OnActivate
失去焦点和得到焦点响应的是:ON_WM_ACTIVATE()对应的处理是:afx_msg void OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized);nState有三种状态:WA_INACTIVE The window is being deactivated.WA_ACTIVE The window is bein
2012-09-03 15:09:16 14453
转载 C++学习的四个层次
C++缺点之一,是相对许多语言复杂,而且难学难精。许多人说学习C语言只需一本K&R《C程序设计语言》即可,但C++书籍却是多不胜数。我是从C进入C++,皆是靠阅读自学。在此分享一点学习心得。个人认为,学习C++可分为4个层次:第一层次,C++基础:挑选一本入门书籍,如《C++ Primer》、《C++大学教程》、或Stroustrup撰写的经典《C++程序设计语言》或他一年半前的新作《C+
2012-09-03 10:22:32 1620
转载 MFC中CString转int/double/TCHAR*类型
MFC中CString转int/double/TCHAR*类型 CString类型转换CString 型转化成 int 型把 CString 类型的数据转化成整数类型最简单的方法就是使用标准的字符串到整数转换例程。虽然通常你怀疑使用_atoi()函数是一个好的选择,它也很少会是一个正确的选择。如果你准备使用 Unicode 字符,你应该用_ttoi(),
2012-08-31 15:25:55 6786
转载 野指针
野指针,也就是指向不可用内存区域的指针。通常对这种指针进行操作的话,将会使程序发生不可预知的错误。 “野指针”不是NULL指针,是指向“垃圾”内存的指针。人们一般不会错用NULL指针,因为用if语句很容易判断。但是“野指针”是很危险的,if语句对它不起作用。野指针的成因主要有两种:一、指针变量没有被初始化。任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一气
2012-08-30 14:47:14 605
转载 用WM_COPYDATA消息来实现两个进程之间传递数据
用WM_COPYDATA消息来实现两个进程之间传递数据进程之间通讯的几种方法:在Windows程序中,各个进程之间常常需要交换数据,进行数据通讯。常用的方法有 使用内存映射文件 通过共享内存DLL共享内存 使用SendMessage向另一进程发送WM_COPYDATA消息比起前两种的复杂实现来,WM_COPYDATA消息无疑是一种经济实惠的
2012-08-29 18:14:11 5788
转载 如何与正确的 C 运行时 (CRT) 库链接
如何与正确的 C 运行时 (CRT) 库链接概要有六种类型的可重用的库:静态单线程库 (调试/发行版)静态多线程的库 (调试/发行版)动态链接库 (DLL)(Debug/Release)注意每个库都有一个调试版本和发布版本。DLL 是多线程安全,不能用于单线程版本的 CRT 库 Dll。如果可重用的库的任何用户使用多个线程,则需要为多线程安全库类
2012-08-29 12:34:11 1432
江苏省计算机三级偏软试卷
2010-03-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人