c++
文章平均质量分 53
维c银翘片
代码在vs2012平台测试
展开
-
划线的几种方法
void CdrawView::OnLButtonDown(UINT nFlags, CPoint point){ // TODO: 在此添加消息处理程序代码和/或调用默认值 //MessageBox("点击一下"); m_point=point; CView::OnLButtonDown(nFlags, point);}void Cdr原创 2013-07-04 21:47:23 · 911 阅读 · 0 评论 -
c++ 类继承和多态
#include using namespace std;class people{public: //people() //{ // cout //} people(int weight,int height) { //带参数 } ~people() {原创 2013-07-01 22:05:35 · 694 阅读 · 0 评论 -
CMenu 类操作
//针对同一个菜单响应在四个类共有一个响应函数时候,他们的先后顺序是View类,Doc类,MainFrame类,App类。 //Doc类 App类不是从CWdn派生来的 // CClientDC dc(this); //GetMenu()->GetSubMenu(0)->SetDefaultItem(1,TRUE);//默认菜单 //SetDefaultItem它原创 2013-07-17 12:58:15 · 878 阅读 · 0 评论 -
c++ 函数 类 基础知识
#include//struct Point//{// int x;// int y;// //c结构体中不能定义函数 c++中可以// //结构体是一种特殊的类// void output()// {// std::cout// }////};//上面的结构体可以换成类class Po原创 2013-07-01 20:56:54 · 614 阅读 · 0 评论 -
继承 类的重复定义问题
在类的定义前后分别加上了#ifndef…#define…#endif语句如果没有定义 就定义一般写法#ifndef 类名_H_H /类名_H_H_H#define 类名_H_H#endif原创 2013-07-02 21:00:31 · 844 阅读 · 0 评论 -
DLL木马的编写要点与思路
//线程注入木马也算是个不太新的方式了,但是在当时一度成为了恐慌.因为在进程中隐藏,而所注入的进程又是系统关键进程,无法终止.至于其他的木马神马神马吧,都是浮云.// 木马运行关键是隐藏,神不知鬼不觉才是王道.要隐藏,先要隐藏进程,Windows操作系统中程序以进程的方式运行,大多数操作系统也是如此.任务管理器就可以看到当前运行的进程,所以有人HOOK相关枚举进程的函数,让任务管理转载 2013-07-04 17:26:52 · 987 阅读 · 0 评论 -
CPen和CBrush的使用
利用CPen画自定义线条和CBrush填充自定义区域。一、CPen的使用。//构造画笔 CPenmyPen1(PS_SOLID, 2,RGB(255,0,0)); CClientDCdc( this);//将画笔选入DC CPen*pOldPen = dc.SelectObject( &myPen1 );dc.MoveTo( m_starpoint );转载 2013-07-06 13:23:58 · 3615 阅读 · 0 评论 -
hack编程
#include "stdio.h"#include "windows.h"#ifdef _DEBUG#define MsgBox(lpText) MessageBox(NULL,lpText,NULL,NULL)#else#define MsgBox(lpText)#endif#define LOAD_BASE_ADDR 0x03140000#define S转载 2013-07-24 11:34:42 · 978 阅读 · 0 评论 -
c++中的虚函数
虚函数C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。什么是虚函数?在一个类转载 2013-07-24 11:41:54 · 637 阅读 · 0 评论 -
内存分配方式
内存分配方式内存分配方式有三种:[1]从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。[2]在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。[3]从堆上分配,亦称动态内存分配。程序原创 2013-07-31 16:45:13 · 784 阅读 · 1 评论 -
system("pause") 和getchar()
/*----------------------------------------------------------------------------*/system("pause") 和getchar()有什么区别呢 ?system("pause") 是调用WINDOWS CONSOLE APP下的命令 PAUSE的。 system("const char*")就是调用WI转载 2013-07-25 17:55:25 · 1453 阅读 · 0 评论 -
GDI映射模式
//dc.SetMapMode(MM_TEXT);//默认映射方式 //以MM_ANISOTROPIC模式画一个椭圆,使他与所在的窗口四边相接 CRect rect; CClientDC dc(this); GetClientRect(&rect);//是获得窗口的当前的客户区 dc.SetMapMode(MM_ANISOTROPIC);原创 2013-08-10 13:59:56 · 721 阅读 · 0 评论 -
如何提高标准输入输出流的速度
在网上查看别人的ACM代码时,发现别人输入输出语句用的总是scanf与printf,有点不解,还以为他们用的都是C语言,而非C++,但今天做的一道题(Sort):发现与网上的其他高手使用完全相同的方法,使用scanf及printf的代码提交后Accepted,而使用cin及cout的却Time Limit Exceeded,代码如下:代码一(Accepted):#includeusi转载 2013-08-23 17:46:14 · 1066 阅读 · 0 评论 -
warning C4800: 'int' : forcing value to bool 'true' or 'false' (performance warning)
The Visual Studio compiler makes a big deal of int to bool conversions. For example, if you do: bool bPunct = ispunct(c); // causes warning You'll get the war转载 2013-09-11 14:49:28 · 2480 阅读 · 0 评论 -
vs2012 怎么添加ws2_32.lib 库
vc6.0在使用之前须链接库函数:工程->设置->Link->输入ws2_32.lib,OK!vs2012 项目>属性->配置属性->链接器->输入 :附加依赖项 中加入要链接的库即可。或者 #pragma comment(lib,"ws2_32.lib")原创 2013-09-14 09:40:14 · 5650 阅读 · 0 评论 -
如何解决vs高级版本 不安全函数提示的问题
我用一些老版本的如sprintf等函数,老是跳出不安全的警告。让我使用sprintf_s可以用 #define _CRT_SECURE_NO_WARNINGS来取消报警。注:加在最前面原创 2013-09-18 11:21:20 · 1980 阅读 · 0 评论 -
蛋疼的extern
extern可以置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。另外,extern也可用来进行链接指定。 程序的生成:先编译后链接。 现代编译器一般采用按文件编译的方式,因此在编译时,各个文件中定义的全局变量是互相不透明的。也就是说,在编译时,全局变量的可见域限制在文件内部。链接时它的可见范围被扩大到了整个程原创 2013-09-25 15:59:24 · 825 阅读 · 0 评论 -
Windows 消息处理机制与事件驱动
【SunXin.VC++深入】1.窗口(Windows)和句柄(HANDLE,handle):窗口句柄(HWND)图标句柄(HICON)、光标句柄(HCURSOR)和画刷句柄(HBRUSH)2.消息,消息队列,消息循环,消息响应 .OS将操作包装成Message .typedef struct MSG { HWND hwnd; //窗口句柄,即标示消转载 2013-07-01 16:29:05 · 931 阅读 · 0 评论 -
第一个mfc
#include #include #include LRESULT CALLBACK Winsunproc( HWND hwnd, // handle to window UINT uMsg, // message identifier WPARAM wParam, // first message parameter LPARAM l原创 2013-06-30 23:29:04 · 583 阅读 · 0 评论 -
SetROP2
CDC::SetROP2int SetROP2(int nDrawMode);返回值:绘图模式的前一次取值。可以取联机文档“Windows SDK”中提供的任意值。参数: nDrawMode 指定新的绘制模式,可以为下列值之一:· R2_BLACK 像素始终为黑色。 · R2_WHITE 像素始终为白色。 · R2_NOP 像素保持不变。 · R2_NOT 像素为翻译 2013-07-06 20:30:30 · 772 阅读 · 0 评论 -
CreateSolidCaret 插入符
创建系统插入符号的一个矩形并声明插入符号的所有权。 void CreateSolidCaret( int nWidth, int nHeight );参数nWidth 指定插入符号的宽度(以逻辑单位)。 如果此参数是0,则宽度设置为SYSTEM定义的窗口边框宽度。翻译 2013-07-06 20:33:08 · 1195 阅读 · 0 评论 -
WM_paint详解
WM_PAINT是Windows窗口系统中一条重要的消息,应用程序通过处理该消息实现在窗口上的绘制工作。1. 系统何时发送WM_PAINT消息? 系统会在多个不同的时机发送WM_PAINT消息:当第一次创建一个窗口时,当改变窗口的大小时,当把窗口从另一个窗口背后移出时,当最大化或最小化窗口时,等等,这些动作都是由系统管理的,应用只是被动地接收该消息,在消息原创 2013-07-07 14:55:36 · 690 阅读 · 0 评论 -
插入光标
void CTextView::OnDraw(CDC* pDC){ CTextDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc) return; //CString str("c++"); CString str; str.LoadString(IDS_原创 2013-07-09 22:13:19 · 730 阅读 · 0 评论 -
GetTextMetrics与GetTextExtent的区别
GetTextMetrics与GetTextExtent的区别 收藏 GetTextMetrics:获取当前字体的信息GetTextExtent:获取特定的字符串在屏幕上所占的宽度和高度CDC::GetTextMetrics作用:返回当前设备描述表中的当前所用的字体的信息函数原型:BOOL GetTextMetrics( LPTEXTMETRIC lpMe转载 2013-07-10 13:09:10 · 864 阅读 · 0 评论 -
c++编程100例-002
//【程序2】//题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高// 于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提// 成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于// 40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,原创 2013-06-26 15:55:56 · 909 阅读 · 0 评论 -
c++编程100例-003
//【程序3】//题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?//1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后// 的结果满足如下条件,即是结果。请看具体分析:#include #include using namespace std;int main()原创 2013-06-26 20:04:17 · 809 阅读 · 0 评论 -
c++ 100例编程-004
//题目:输入某年某月某日,判断这一天是这一年的第几天?//1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊// 情况,闰年且输入月份大于3时需考虑多加一天。#include #include using namespace std;int main(){ int day,year,month,sum,lee原创 2013-06-26 20:56:59 · 770 阅读 · 0 评论 -
c++编程100例-001
//程序1//题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?//1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去// 掉不满足条件的排列。#include using namespace std;int main(){ int i,j,k; for(i=1;i原创 2013-06-26 15:54:27 · 845 阅读 · 0 评论 -
类 成员访问方法
#include using namespace std;class People{public: void GetHeight();/*{cout void SetHeight(int x) { Height=x; //函数的定义 //私有成员访问方法一 } void GetW原创 2013-06-26 23:07:56 · 855 阅读 · 0 评论 -
析构函数
#include using namespace std;class A{public: A(){cout ~A(){cout};int main(){ A a; //a.~A(); return 0;}原创 2013-06-28 12:33:21 · 746 阅读 · 1 评论 -
析构函数2
//但在某些情况下你可能需要在一个函数内控制一个函数以外的变量。要实现这种操作,我们必须使用按地址传递的参数#include using namespace std;void ss(int &a,int &b);void ss(int &a,int &b){ a+=a; b+=b;}int main(){ int a=3,b=4;原创 2013-06-28 12:55:20 · 670 阅读 · 0 评论 -
VC++中ATL\CLR\MFC\Win32区别是什么
atl 是活动模板库,常用来开发 activex 组件或者系统服务等;ATL用于编写COM程序clr 是托管编程;CLR是。NET的公共语言运行库。 mfc 是基于 mfc 框架编程,通常用来做比较复杂的窗口程序;MFC是指MFC类库,MFC程序是用这些类库做出的程序。 Win32 是基于 Win32 API 编程,通常用来做短小精悍的程序。 ATL用于编原创 2013-06-29 10:41:20 · 2056 阅读 · 0 评论 -
古老的goto语句
//goto 语句#include using namespace std;int main(){ int i=1; // number:i++; //cout //if(i //{ // goto number; //} if(i { goto yes; }原创 2013-06-29 12:32:31 · 717 阅读 · 0 评论 -
while循环的语法
//while#include using namespace std;int main(){ int i=1; cout cin>>i; while(i0) { cout i++; } return 0;}原创 2013-06-29 12:43:56 · 853 阅读 · 0 评论 -
C++ continue 和 break 的用法
break,continue,return的区别最近总使用到这3个关键字,所以想总结一下他的用法. 1)break 直接跳出当前的循环,从当前循环外面开始执行,忽略循环体中任何其他语句和循环条件测试。他只能跳出一层循环,如果你的循环是嵌套循环,那么你需要按照你嵌套的层次,逐步使用break来跳出. 2)continue 也是终止当前的循环过程,转载 2013-06-29 13:05:11 · 2089 阅读 · 0 评论 -
打造自己的TCP通信类
黑客编程弄的,MyTcpTran类MyTcpTran.h// MyTcpTran.h: interface for the CMyTcpTran class.////////////////////////////////////////////////////////////////////////#if !defined(AFX_MYTCPTRAN_H__871B589A_原创 2013-09-26 17:18:22 · 1409 阅读 · 0 评论