- 博客(25)
- 收藏
- 关注
原创 MFC 各类字符与CString转换
typedef unsigned char uBit8;typedef char Bit8; typedef unsigned short uBit16;typedef short Bit16; typedef unsigned long uBit32; typedef long Bit32; typedef long long Bit64; typedef floa
2016-11-26 17:06:42
244
原创 MFC,创建DLL库
HkComDll.h文件#ifndef _HK_COM_DLL_H#define _HK_COM_DLL_H#define HKCOM_API __declspec(dllimport)#include "UIN_SysApi.h"#include "UIN_CrdApi.h"#include "UIN_AxisMotorApi.h"#include "UIN_RegApi.h
2016-11-26 14:04:51
116
原创 第三章 需求与设计评审
产品需求评审是为了: 保证系统需求在市场需求文档 或 产品需求文档及相关的文档中无歧义的描述。不一致,遗漏和错误将会被审查出来并得到改正。评审的重要性:结果显示,产品的缺陷出现最多的地方是产品需求规格说明书,而不是程序代码。评审: 技术评审 (对产品各阶段的成果进行评估,以确保需求规格说明书,设计文档,测试计划和用例等之间保持一致,并得到严格的执行)
2016-09-27 21:44:20
411
原创 MFC程序启动执行流程
MFC执行流程。_tWinMain(WinMain的别名,用define替换的)-》AfxWinMain->初始化线程,调用InitInstance初始化窗口,调用Run函数进入消息循环。学过PE文件格式,就明白,程序在进入WinMain之前要做很多事情,比如初始Dos头,分配函数表,初始化全局变量,之后才进入程序入口(WinMain)MFC对WindowsAPI进行了
2016-05-04 09:29:56
562
原创 对话框内画横线DrawIcon
void CNcEliteIIDlg::OnPaint(){if (IsIconic()){CPaintDC dc(this); // 用于绘制的设备上下文SendMessage(WM_ICONERASEBKGND, reinterpret_cast(dc.GetSafeHdc()), 0);// 使图标在工作区矩形中居中int cxIcon = Get
2016-04-23 13:48:14
179
原创 只修改CFile文件中的一行
修改的是最后一行:void CTest1Dlg::OnButton1() { // TODO: Add your control notification handler code here CFile file; char *filemodule = "d:\\a.csv"; CFileException except; char cBuffer[ 100 ] = ""; CS
2016-04-22 16:45:24
241
原创 CFile::Flush()详解
file.Flush();MSDN说是将缓存的内容写入文件。一定要加,各种实验,包括多线程操作同一个文件等等,都证明了,这东西少不了。Flush是将缓冲区的内容写入文件,并清空。缓冲区是4k的内容,够4k了,就会自动写入文件,不够的话就需要flush一下,如果不flush的话,文件的最后有可能会少一些内容flush()的作用是强制将缓冲区的数据写入磁盘,只是为了确保
2016-04-22 16:43:24
1500
原创 MFC CFileDialog dlg文件夹 以及浏览文件夹操作
一.打开文件夹 CFileDialog dlg(TRUE,_T("txt"),NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,_T("(*.txt)|*.txt||")); if(dlg.DoModal() == IDOK) { strPath = dlg.GetPathName();//获取文件全路径 } CString strFileN
2016-04-21 09:45:07
1131
原创 程序从WIN平台移植到wince平台
我用的是VS2008一.首先需要装wince的SDK,WINCE6.0_CHS_SDK.msi(这个是我网上找的WINCE6.0的SDK) 下载地址:http://down.51cto.com/data/961457二.安装WINCE6.0SDK方法:想使用Windows CE6.0模拟器进行程序调试,就下载了个WinCE 6.0的SDK进行安装,但是安装过程中一直都会报错后失败。
2016-04-20 14:32:24
328
原创 PreTranslateMessage 解决MFC 模态或非模态对话框对按键消息不响应
1.在头文件中加 public: virtual BOOL PreTranslateMessage(MSG* pMsg);2.然后在cpp 文件中重写BOOL CNcEliteIIDlg::PreTranslateMessage(MSG* pMsg){ if (pMsg->message == WM_KEYDOWN) {//按键按下消息 m_pSu
2016-04-19 20:49:45
574
原创 类成员函数指针详解
C++指向函数的指针定义方式为:返回类型 (*指针名)(函数参数列表),例如 void (*p)(int)是指向一个返回值为void 参数为int类型的函数。而若想定义一个指向类成员函数的函数指针该怎么定义呢?对成员函数指针的使用。(1)非静态成员函数定义方式:返回类型 (类名::*指针名)(函数参数列表)例如void (A::*p)(int)是一个指向A类中成员函
2016-04-18 21:37:44
501
原创 VS2008 MFC文件夹查找特定文件
m_ctrFilePath.GetWindowText(strFileName);//获取文件路径 if (strFileName == _T(""))//如果路径为空,则查找默认路径下的文件 { strFileName = m_Data_strUpdataFilePath;//获取默认路径 strFileName += _T("\\"); strFileName += _T(
2016-04-13 21:01:33
189
原创 CString 16进制 转 int 类型
int CControllerStatusDlg::HexToDem(CString str){ int dem=0; for(int i=0;i<str.GetLength();i++) { dem=dem*16; if((str[i]='0')) //0~9之间的字符 dem+=str[i]-'0'; else if((str[i]='A')) //
2015-11-13 20:08:43
274
原创 stm32f10x_it.c
#include "stm32f10x_it.h"extern u16 g_uTimerCount;extern u16 g_uMonitorTimer;extern u16 g_uDownloadTimer;void TIM1_UP_IRQHandler(void) { //GPIOA->BSRR = GPIO_Pin_4; g_
2015-09-30 15:03:50
282
原创 TmLedKeyData.h
/* Copyright (c) 2015, 东莞华科精机有限公司 All rights reserved.文件名称:摘 要:运行环境:IAR6.3修改描述:当前版本:1.0 修改作者: 修改了内容:修改日期: 原 作 者:完成日期:2015年9月15日 */
2015-09-30 15:02:56
147
原创 nvic_conf.h
#include "nvic_conf.h"void nvic_conf(void){ NVIC_InitTypeDef NVIC_InitStructure; NVIC_SetVectorTable(NVIC_VectTab_RAM,0x0); //2 bits for pre-emption priority,2 bits f
2015-09-30 15:00:33
80
原创 TmLedKeyData.c
#include "stm32f10x_it.h"extern u16 g_uTimerCount;extern u16 g_uMonitorTimer;extern u16 g_uDownloadTimer;void TIM1_UP_IRQHandler(void) { //GPIOA->BSRR = GPIO_Pin_4; g_
2015-09-30 14:58:09
87
原创 C++/MFC 工具介绍
开发工具 一般是都是VS08 10 12 13 插件一般是 Visual AssistX代码格式化工具 一般是 FormatX如果希望查看大规模代码的工具 可以用source insight。不过这个linux开发的最常用。还有就是内存泄露检测 visual leak detector
2015-07-10 09:43:06
220
原创 C++/MFC 句柄
GetSafeHwnd()和GetSafeHandle()的主要区别:1.使用者不同:(1)窗体使用:GetSafeHwnd()用于获取窗体的安全句柄(即HWND),有了HWND我们就可以方便的对HWND指向的窗体进行所需的操作了;(2)GDI对象使用:GetSafeHandle(),用于获取GDI对象的句柄。注意:在使用指针时强烈建议这
2015-07-10 09:32:24
293
原创 重写、覆盖、重载、隐藏、多态几个概念的区别分析
override->重写(=覆盖)、overload->重载、polymorphism -> 多态 override是重写(覆盖)了一个方法,以实现不同的功能。一般是用于子类在继承父类时,重写(重新实现)父类中的方法。成员函数的重载(overload)、覆盖(override)与隐藏很容易混淆,C++程序员必须要搞清楚概念,否则错误将防不胜防。 1 重载与覆盖
2015-07-09 10:34:41
188
转载 C++的虚函数简单介绍
//C++中的虚函数的作用主要是实现了多态的机制。关于多态,//简而言之就是用父类型别的指针指向其子类的实例,//然后通过父类的指针调用实际子类的成员函数 //每个类都维护着一张虚函数表,//调用虚函数时查看对象是那个类,然后查表 //基类可以使用为纯虚函数(virtual void print()=0),//基类就是抽
2015-07-09 09:50:54
198
原创 虚函数探讨
虚函数联系到多态,多态联系到继承。所以本文中都是在继承层次上做文章。没了继承,什么都没得谈。下面是对C++的虚函数这玩意儿的理解。一, 什么是虚函数(如果不知道虚函数为何物,但有急切的想知道,那你就应该从这里开始)简单地说,那些被virtual关键字修饰的成员函数,就是虚函数。虚函数的作用,用专业术语来解释就是实现多态性(Polymorphism),多态性是将接口与实现进行
2015-07-09 09:35:38
174
原创 CBitmap转HBITMAP以及CBitmap、HBITMAP图片信息保存在.bmp文件下
CBitmap转HBITMAP以及CBitmap、HBITMAP图片信息保存在.bmp文件下
2015-07-07 21:14:18
270
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人