C++
文章平均质量分 57
TonyXQQ
如果我比别人看得远些,那是因为我站在巨人们的肩上。
展开
-
C++成员函数指针的使用范例
#includeusing namespace std;class A{public: char hello(int a) { return a-'0'; }};typedef char (A::*PTRFUN)(int);int原创 2011-08-10 16:30:37 · 360 阅读 · 0 评论 -
不用循环和条件判断打印1-1000
#include using namespace std;class Printer{public: Printer() { static unsigned i=1; cout << i++ << endl; }};int main(){ Printer p[1000]; }不用循环和条件判断打印1-1000转载 2012-03-30 09:20:59 · 1174 阅读 · 0 评论 -
“Visual C++范例大全”详细目录
第一篇 VC程序开发基础第1章 VC与C++开发基础 11.1 C++面向对象特性 1实例1:实现C++类的多重继承 1实例2:使用虚函数实现运行时多态 3实例3:使用操作符重载实现编译多态——复数的加法运算 6实例4:使用函数模板实现不同数据类型的极值函数 71.2 C++常用转载 2011-12-19 23:03:06 · 1441 阅读 · 0 评论 -
目录(文件夹)操作
问题描述:创建一个四级目录C:\\A\\B\\C\\D#include #pragma comment(lib,"imagehlp.lib")MakeSureDirectoryPathExists("c:\\A\\B\\C\\D\\"); 问题描述:创建一级目录C:\\ACreateDirectory(L"C:\\A",NULL);关于有时找不到CreateDire原创 2011-11-14 15:31:03 · 698 阅读 · 0 评论 -
选中Edit控件中的文本
在项目中需要用到扫描枪来提取扫描码,但扫描枪提取扫描码时的步骤是:1对文本框进行赋值。2一个回车事件。(这没法改变)如果文本框中有内容,此时必须手工干预(把文本清除),这样的行为极其烦锁。下面提出改进的方法即每次赋完值后直接选中整个文本,以便下次输入覆盖之前文本 BOOL CSelectAllTextDlg::PreTranslateMessage(MSG* pMsg){原创 2011-11-14 10:41:57 · 560 阅读 · 0 评论 -
BitBlt用法(显示图片)
BitBlt原型BOOL BitBlt( HDC hdcDest, 指向目标设备环境的句柄。 int nXDest, 指定目标矩形区域左上角的X轴逻辑坐标。 int nYDest, 指定目标矩原创 2011-10-27 15:15:37 · 3484 阅读 · 0 评论 -
共享网络文件夹
1设置文件夹共享方式为“简单共享文件夹” 2编码代码// test1.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#define UNICODE #include #include #include #pragma comment(lib,"netapi32.lib")int w原创 2011-11-11 11:00:00 · 510 阅读 · 0 评论 -
深度解析VC中的消息传递机制
什么是消息? 消息系统对于一个win32程序来说十分重要,它是一个程序运行的动力源泉。一个消息,是系统定义的一个32位的值,他唯一的定义了一个事件,向Windows发出一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。 消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。转载 2011-11-29 22:33:56 · 954 阅读 · 0 评论 -
时间复杂度测试题2
两个数组a[N],b[N],其中A[N]的各个元素值已知,现给b[i]赋值,b[i] = a[0]*a[1]*a[2]...*a[N-1]/a[i];要求:1.不准用除法运算2.除了循环计数值,a[N],b[N]外,不准再用其他任何变量(包括局部变量,全局变量等)3.满足时间复杂度O(n),空间复杂度O(1)答案:#include using namespace s转载 2012-04-10 14:03:23 · 762 阅读 · 0 评论 -
去掉SDI标题栏上的“无标题—”
BOOL CXXApp::InitInstance() { ....................... m_pMainWnd-> ShowWindow(SW_SHOW); m_pMainWnd-> UpdateWindow(); ::SetWindowText(AfxGetMainWnd()-> GetSafeHwnd(), "k转载 2012-05-14 12:00:14 · 795 阅读 · 0 评论 -
Win7下PostgreSQL 9.3.2的安装、编译libpqxxx 4.0.1工程、测试连接代码
1,下载PostgreSQL 9.3.2,并安装,安装过程都是默认选项,到了最后一步叫安装Stack Builder就省略了2,使用PostgreSQL打开”SQL Shell(PSQL)“,查看当前用户原创 2013-12-09 21:04:06 · 1493 阅读 · 0 评论 -
C++虚函数表
检测方法(VS2005):项目命令行加上参数/d1reportAllClassLayout,在编译时选择重新生成,即可查看类的对象布局总结:继承方式:非virtual继承:导入各个父类的结构(按照父类声明的顺序,从上到下),自身member在最后 重写virtual方法:更新该方法最早定义的类的vftable新的virtual方法:在最左父类的vftable增加继承方式转载 2013-01-09 16:15:12 · 489 阅读 · 0 评论 -
VC MFC SDI/MDI框架各部分指针获取方式
获得CWinApp 获得CMainFrame 获得CChildFrame 获得CDocument 获得CView在CWinApp中 AfxGetMainWnd()m_pMainWndAfxGetMainWnd()->MDIGetActive()AfxGetMainWnd()->GetActive转载 2012-12-04 12:52:09 · 744 阅读 · 0 评论 -
virtual destructor
虚析构函数虚析构函数是为了解决这样的一个问题:基类的指针指向派生类对象,并用基类的指针删除派生类对象。 如果某个类不包含虚函数,那一般是表示它将不作为一个基类来使用。当一个类不准备作为基类使用时,使析构函数为虚一般是个坏主意。因为它会为类增加一个虚函数表,使得对象的体积翻倍,还有可能降低其可移植性。 所以基本的一条是:无故的声明虚析构函数和永远不去声明一样是错误的。转载 2012-10-27 11:10:03 · 1109 阅读 · 0 评论 -
令人蛋疼的错误提示 0xcdcdcdcd ,0xdddddddd ,0xfeeefeee ,0xcccccccc ,0xabababab
http://www.cnblogs.com/pcchinadreamfly/archive/2012/04/26/2471317.html在写C++程序的时候,老实0xcdcdcdcd ,0xdddddddd ,0xfeeefeee ,0xcccccccc ,0xabababab这种提示,不知何解,google之,错误是这样产生* 0xABABABAB : Used by Microso转载 2012-10-24 14:27:30 · 1500 阅读 · 0 评论 -
VC文件关联小结
(1)使用EnableShellOpen自动完成注册表的注册信息这种情况下,只需要在CWinApp子类的InitInstance函数中添加如下代码就行//Enable DDE Execute openEnableShellOpen();RegisterShellFileTypes(TRUE);通常情况下,也有加上这句的必要//Enable drag/drop ope转载 2012-10-09 11:03:00 · 753 阅读 · 0 评论 -
SQLite内存数据库简单使用范例
#include #include #include#include "sqlite3.h"#pragma comment(lib,"sqlite3.lib")#include #include #include "CodingConv.h"int main(int argc, char* argv[]){ int rc,i,ncols; sqlite原创 2012-07-16 08:54:37 · 7103 阅读 · 0 评论 -
使用GDI绘制简单曲线
这里所说的简单曲线主要指的是:圆、椭圆、弧等。同画线一样,都可以通过调用CDC类成员函数来实现绘制工作。1椭圆绘制椭圆及圆的成员函数为Ellipse,函数声明如下:BOOL Ellipse(int x1,int y1,int x2,int y2);BOOL Ellipse(LPCRECT lpRect);参数x1和y1指定了所绘制椭圆的边界矩形的左上角顶点坐标值,参数x2和y2原创 2011-11-08 22:02:19 · 1742 阅读 · 0 评论 -
CFont类
该类封装一个Windows的图形设备接口(GDI)字体并且提供了操纵字体的成员函数,要想使用CFont对象,首先构造一个CFont对象,然后使用成员函数CreateFont、CreateFontIndirect、CreatePointFont或CreatePointFontIndirect把该对象与Windows字体相连,这样用户便可以使用该对象所成员函数操纵字体。1构造CFont类对象该原创 2011-11-08 08:18:48 · 2981 阅读 · 0 评论 -
使用GDI绘制直线
void CLinesView::OnPaint() { CPaintDC dc(this); // 用于绘制的设备上下文 // TODO: 在此处添加消息处理程序代码 // 不要为绘制消息而调用 CWnd::OnPaint() CDC* pDC=GetDC(); CRect rc; GetClientRect(&rc); pDC->MoveTo(0原创 2011-10-28 09:46:34 · 1073 阅读 · 0 评论 -
使用GDI绘制点
void CPixelsView::OnPaint() { CPaintDC dc(this); // 用于绘制的设备上下文 // TODO: 在此处添加消息处理程序代码 // 不要为绘制消息而调用 CWnd::OnPaint() CDC *pDC=GetDC(); for (int i=0;i<200;i++) { pDC->SetPixel(1*i原创 2011-10-28 09:38:20 · 3788 阅读 · 0 评论 -
vc数据类型转换大全
int i = 100;long l = 2001;float f=300.2;double d=12345.119;char username[]="程佩君";char temp[200];char *buf;CString str;_variant_t v1;_bstr_t v2;一、其它数据类型转换为字符串 短整型(int)itoa(i,tem转载 2011-10-27 08:12:15 · 468 阅读 · 0 评论 -
Windows图形编程——Hello World(版本2):直接绘制到桌面上
#define STRICT#define WIN32_LEAN_AND_MEAN#include #include #include void CenterText(HDC hDC, int x, int y, LPCTSTR szFace, LPCTSTR szMessage, int point){ HFONT hFont = CreateFont(- p翻译 2011-10-24 22:06:22 · 1828 阅读 · 1 评论 -
Windows图形编程(版本3):创建一个全屏窗口
1 Win.h#pragma onceclass KWindow{protected: virtual void OnDraw(HDC hDC) { } virtual void OnKeyDown(WPARAM wParam, LPARAM lParam) { } virtual LRESULT WndProc(HWND hWn翻译 2011-10-24 22:15:47 · 1223 阅读 · 0 评论 -
Windows图形编程——Hello world(版本1):启动浏览器
#define STRICT#include #include #include const TCHAR szOperation[]=_T("open");const TCHAR szAddress[]=_T("www.google.com.hk");int WINAPI WinMain( __in HINSTANCE hInstance, __in_opt HIN翻译 2011-10-24 21:57:31 · 546 阅读 · 0 评论 -
vs2005出现错误:'AfxLoadLibrary': identifier not found
在VS2005中由Debug方式更改为Release方式时经常会出现"AfxLoadLibrary找不到标志符"如下为解决问题的方法 方法一:当然是打开程序了,在vs2005的菜单栏上面有个Project的顶层菜单。首先要做的是定位到你的程序的工程上面,然后进入这转载 2011-09-28 10:14:21 · 3809 阅读 · 0 评论 -
使用GDI绘制矩形
void CRectanglesView::OnPaint() { CPaintDC dc(this); // 用于绘制的设备上下文 // TODO: 在此处添加消息处理程序代码 // 不要为绘制消息而调用 CWnd::OnPaint() CDC* pDC=GetDC(); pDC->Rectangle(100,100,500,500);}原创 2011-10-28 10:05:45 · 5149 阅读 · 0 评论 -
应用程序正常初始化 0x0150002失败
用VC2005编译的程序,编译时没有任何错误,但是运行时就是提示“应用程序正常初始化失败”!! 查找了各方面资料,做了各种尝试,网上说什么的都有:有让安装vc2005 sp1补丁的;有让安装vcredist_x86.exe的; 有让把CRT库的dll直接拷贝到程序目录的; 有让清理注册表的;有让装.NetFramework新版本的;有让查manifest的; 结果我尝试了半天,几乎都是转载 2011-11-18 11:01:22 · 1344 阅读 · 0 评论 -
CEditView/CEdit 中Ctrl + A 全选功能的实现
以类class CDummyEdit : public CEditView为例:1) 在.h中添加: // Generated message map functionsprotected: //{{AFX_MSG(CDummyEdit) // NOTE - the ClassWizard will add and remove member functions he转载 2011-11-25 09:07:34 · 1361 阅读 · 0 评论 -
建立空文档失败
这类问题的出现主要在bool CWinApp::ProcessShellCommand(CCommandLineInfo& rCmdInfo);函数的内容如下(在C:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\src\mfc\appui2.cpp)BOOL CWinApp::ProcessShellCommand(CCommandL转载 2011-11-23 13:03:16 · 6489 阅读 · 0 评论 -
获取指针指向区域的大小
在VC中获取指针指向区域的大小的方法有如下两种1 间接法,在结构体中添加一个变量用于指示如typedef struct{int len;char* data;}node; 2 直接法,使用_msizesize_t _msize( void *memblock );该函数返回在堆上分配的内存块大小,以字节为单位。因此将指针传递给这个函数就可以获取指针指原创 2011-11-22 23:21:28 · 4596 阅读 · 0 评论 -
ofstream和ifstream详细用法
1理论ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间;在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符:1、插入器( 向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,cout2、析取器(>>)转载 2011-11-22 13:23:20 · 365 阅读 · 0 评论 -
unsigned char与char
1理论char 是无符号的 unsigned char 是无符号的,里面全是正数两者都作为字符用的话是没有区别的,但当整数用时有区别: char 整数范围为-128到127,而unsigned char 整数范围为0到255多数情况下,char ,signed char 、unsigned char 类型的数据具有相同的特性然而当你把一个单字节的数赋给一个大整型数域转载 2011-11-22 18:00:21 · 603 阅读 · 0 评论 -
MFC 的一些常见问题
如何抛出(throw)由CUserException派生的异常? 当我试图捕获(catch)一个派生类异常时,我得到以下错误"error C2039:'classCMyException': is not a member of 'CMyException' 'classCMyException': undeclared identifier 'IsKindOf': cannot conver转载 2011-11-18 16:25:56 · 802 阅读 · 0 评论 -
CPen类
CPen画笔是一种用来画线及绘制有形边框的工具,用户可以指定它的颜色及厚度,并且可以指定它画实线、点线或虚线。CPen类,该类封装了Windows图形设备接口(GDI)画笔,主要通过构造函数来创建绘图对象。1构造CPen对象该类共重载了3个构造函数,下面分别进行详细说明CPen();CPen(int nPenStyle,int nWidth,COLORREF crColor);原创 2011-10-30 15:07:10 · 9111 阅读 · 0 评论 -
CBrush类
CBrush画刷定义了一种位图形式的像素,利用它可对区域内部填充颜色该类封装了Windows的图形设备接口(GDI)刷子。通过该类构造的CBrush对象可以传递给任何一个需要画刷的CDC成员函数。该画刷可以是实线、阴影线和某种图案1构造CBrush对象该类具有4个重载的构造函数,下面分别加以介绍CBrush;CBrush(COLORREF crColor);CBrush(i原创 2011-10-30 16:52:48 · 4640 阅读 · 3 评论 -
13/11位unix时间戳转换成标准时间
使用范例 char *str="1320718222932"; long long time1; sscanf(str,"%I64d",&time); CString strTime=MillSecond2LocalTime(time,8);/////////////////////////////////////////////////////////////////////////原创 2012-11-23 14:33:40 · 19588 阅读 · 1 评论