C++学习
惟愿莲心不染尘
若欲掌控永恒,必当把握现在!
展开
-
define宏定义中的#,##,@#及/符号
<br />1、# (stringizing)字符串化操作符。其作用是:将宏定义中的传入参数名转换成用一对双引号括起来参数名字符串。其只能用于有传入参数的宏定义中,且必须置于宏定义体中的参数名前。<br />如:<br />#define example(instr) printf("the input string is:/t%s/n",#instr)<br />#define example1(instr) #instr<br />当使用该宏定义时:<br />example(abc); 在编译时将会展转载 2010-12-13 10:50:00 · 590 阅读 · 0 评论 -
MFC 创建不规则窗体
//在对话框或窗口初始化中添加以下代码原创 2014-06-18 21:11:50 · 1154 阅读 · 2 评论 -
MFC 绘制不规则窗体
实现过程:1、首先创建基于DLG的MFC应用程序,命名为:tryBGDlg,并将DLG的属性设置为:Title Bar :False ,其它设置不变2、制作两幅图像,其中的一幅黑白图像,是根据播放器外观来制作的,其中白色区域是要保留的最终在桌面上显示的区域。将这两幅图像添加到工程中,第一个ID号设置为IDB_INTERFACE,第二个ID号设置为:IDB_MASK3、在CtryBG转载 2014-06-18 17:04:37 · 1258 阅读 · 0 评论 -
Windows窗口消息
////////////////////////////////////////////////////////////////////////// #include "AFXPRIV.H"//消息值的定义来源 #include "Dde.h"//DDE消息值的定义来源 #include "CPL.H"//控制面板消息值的定义来源 #include "WFEXT.H"//文件管理器转载 2014-06-19 16:33:36 · 2333 阅读 · 1 评论 -
MFC技巧
1."属性页的添加:创建对话框的类,该类要从CpropertyPage继承;然后在要添加该对话框为属性页的类(头文件)里创建CpropertySheet类的一个对象m_tabsheet和新创建的对话框类的对象m_skatch;最后,在.cpp文件里的OnInitDialog()之类的函数里实现如下代码:m_tabsheet.Create(this, WS_CHILD | WS_VISIBL转载 2014-06-20 16:07:50 · 3664 阅读 · 0 评论 -
MFC 响应双击事件
CS_DBLCLKS如果在窗口风格中未包含CS_DBLCLKS,而使用者在短时间内双击了鼠标按键,那么窗口消息处理程序会接收到下面这些消息:WM_LBUTTONDOWNWM_LBUTTONUP WM_LBUTTONDOWN WM_LBUTTONUP 如果您的窗口类别风格中包含了CS_DBLCLKS,那么双击时窗口消息处理程序将收到如下消息:WM_LBUT原创 2014-08-06 10:00:51 · 2893 阅读 · 0 评论 -
MFC 用默认浏览器打开网页
//MFC //用默认浏览器打开网页//如果找不到默认浏览器,则默认用IE打开void OpenURL(cons)原创 2014-08-19 10:58:14 · 9294 阅读 · 1 评论 -
VC中置顶窗口的方法
将窗体置顶的方法有://将窗体置顶的API函数::SetWindowPos(m_hWndTop,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);//MFCpDlg->SetWindowPos(&CWnd::wndTopMost,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE); 说明:&CWnd::wndTopMost转载 2014-08-08 09:27:25 · 1447 阅读 · 0 评论 -
获取文件的MD5码
//MD5Checksum.h#if !defined(AFX_MD5CHECKSUM_H__2BC7928E_4C15_11D3_B2EE_A4A60E20D2C3__INCLUDED_)#define AFX_MD5CHECKSUM_H__2BC7928E_4C15_11D3_B2EE_A4A60E20D2C3__INCLUDED_#if _MSC_VER > 1000#pragm原创 2014-08-15 10:26:05 · 2472 阅读 · 0 评论 -
程序调用ShellExecuteEx打开其他程序(兼容UAC获取管理员权限)
MFC编程:Win7下支持弹出UAC对话框获取管理员权限原创 2014-09-23 15:21:06 · 11782 阅读 · 0 评论 -
boost::asio译文
Christopher KohlhoffCopyright © 2003-2012 Christopher M. Kohlhoff以Boost1.0的软件授权进行发布(见附带的LICENSE_1_0.txt文件或从http://www.boost.org/LICENSE_1_0.txt)Boost.Asio是用于网络和低层IO编程的跨平台C++库,为开发者提供了C++环境下稳定的异步模转载 2015-03-11 09:36:24 · 1658 阅读 · 0 评论 -
socket方式发送Http GET消息
#include #include #pragma comment(lib, "ws2_32.lib") // 连接服务器发送消息并将接收数据保存到 pReceiveBuf 中,此过程会 select 并 recv 消息,直到没有数据到达或者接收缓存已满 int connectAndSendData(const char *szHost, unsigned shor转载 2015-06-05 16:54:39 · 519 阅读 · 0 评论 -
改变鼠标形状
转自:http://blog.csdn.net/ricky460/article/details/234300Windows程序和Doc程序很大的不同 , 就在于Windows有一个亮丽的图形界面和简捷的操作方式 , 而鼠标就是Windows程序中最重要的一个操作手段 . 有朋友向我咨询如何修改鼠标形状 , 这本来是一个简单的问题 ,但是当朋友向我询问进一步的,更转载 2015-07-08 14:02:51 · 1023 阅读 · 0 评论 -
网页游戏微端制作过程遇到的问题和知识点
游戏微端制作过程遇到的问题和知识点原创 2014-08-14 17:11:45 · 5956 阅读 · 2 评论 -
C++ stl map的基本操作和使用
Map是c++的一个标准容器,她提供了很好一对一的关系,在一些程序中建立一个map可以起到事半功倍的效果,总结了一些map基本简单实用的操作!1. map最基本的构造函数; mapmapstring; mapmapint; mapmapstring; mapmapchar; mapmapchar; mapmapint转载 2015-10-26 21:24:27 · 440 阅读 · 0 评论 -
C++标准库容器 vector
在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结。1 基本操作(1)头文件#include.(2)创建vector对象,vector vec;(3)尾部插入数字:vec.push_back(a);(4)使用下标访问元素,cout(5)使用迭代器访问元素.vectorint>::iterator it;for(it=ve转载 2015-12-27 22:05:50 · 936 阅读 · 0 评论 -
C++头文件重定义解决方式
C++由于头文件重复包含了所定义的变量或者常量,编译器就会报重复定义的错误。可以通过以下几种方式进行解决:1、在头文件加上防止重定义的宏:#ifndef FileName_H_#define FileName_H_ ....(头文件内容)#endif注:如果FileName_H_这个名字已经被使用,将会出现未定义问题,请保证FileName_H_的唯一性原创 2015-12-27 21:52:28 · 5467 阅读 · 0 评论 -
MFC 改变控件大小和位置
用CWnd类的函数MoveWindow()或SetWindowPos()可以改变控件的大小和位置。void MoveWindow(int x,int y,int nWidth,intnHeight);void MoveWindow(LPCRECT lpRect);第一种用法需给出控件新的坐标和宽度、高度;第二种用法给出存放位置的CRect对象;例:CWnd *pWnd;转载 2014-06-18 17:22:08 · 821 阅读 · 0 评论 -
获得其他程序窗体控件中的信息
#include BOOL CALLBACK EnumChildProc(HWND hWnd,LPARAM lParam);int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){ char className[]="notepad";原创 2014-07-04 21:41:16 · 1168 阅读 · 0 评论 -
CStringList用法备注
CStringList是CString链表,在MFC编程中STL之外的原创 2014-06-25 10:02:45 · 6442 阅读 · 0 评论 -
C++中使用内存映射文件处理大文件
引言<br /><br /> 文件操作是应用程序最为基本的功能之一,Win32 API和MFC均提供有支持文件处理的函数和类,常用的有Win32 API的CreateFile()、WriteFile()、ReadFile()和MFC提供的CFile类等。一般来说,以上这些函数可以满足大多数场合的要求,但是对于某些特殊应用领域所需要的动辄几十GB、几百GB、乃至几TB的海量存储,再以通常的文件处理方法进行处理显然是行不通的。目前,对于上述这种大文件的操作一般是以内存映射文件的方式来加以处转载 2010-12-13 11:51:00 · 6394 阅读 · 2 评论 -
C++ builder 的文件读写操作总结
在编程的过程中,文件的操作是一个经常用到的问题,在C++Builder中,可以使用多种方法对文件操作,下面我就按以下几个部分对此作详细介绍,就是:<br />1、基于C的文件操作;<br />2、基于C++的文件操作;<br />3、基于WINAPI的文件操作;<br />4、基于BCB库的文件操作;<br />5、特殊文件的操作。<br /> <br />壹、基于C的文件操作 <br /> 在ANSI C中,对文件的操作分为两种方式,即流式文件操作和I/O文件操作,下面就分别介绍之。<br />转载 2010-12-13 16:47:00 · 1142 阅读 · 0 评论 -
C++中extern “C”含义深层探索
<br /><br />1.引言<br /> C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显的不同。<br /> 2.从标准头文件说起<br /> 某企转载 2010-12-22 11:01:00 · 356 阅读 · 0 评论 -
#pragma pack(n) 对齐用法详解
<br />什么是对齐,以及为什么要对齐: <br />现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 <br />对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。其他平台可能没有这种情况,但是最常见的是如果不按照适合其平转载 2010-12-24 10:28:00 · 456 阅读 · 0 评论 -
SWIG 装载DLL让Python 使用
用SWIG生成Python可用的扩展DLL时,需要改扩展名成pyd才可让py直接调用也可在exe装载DLL,并显式调用生成的cxx文件中的函数SWIG_init(),然后在exe中即可直接使用Py调用该DLL中函数Py_Initialize();//先初始化pythonSWIG_init(); //SWIG初始化使用完最后Py_Finalize();原创 2010-12-30 15:26:00 · 1173 阅读 · 0 评论 -
c++ STL algorithm 列表
<br />#include <algorithm><br /> <br />1. 查找算法 (13) 为判断容器中是否包含某一个值提供<br />adjacent_find()<br />binary_search()<br />count()<br />count_if()<br />equal_range()<br />find()<br />find_end()<br />find_first_of()<br />find_if()<br />lower转载 2011-01-02 11:49:00 · 370 阅读 · 0 评论 -
Singleton模式(C++)
转自http://www.cppblog.com/zmllegtui/archive/2008/10/27/65252.htmlclass Singleton{public: static Singleton* Instance();protected: Singleton();private: static Singleton* _instance;}; 相应的实现 cpp 文件是:Singleton* Singleton::_instance;Singleton*转载 2011-01-18 09:53:00 · 548 阅读 · 0 评论 -
COM组件初始化
使用BCB在使用TADOConnect等组件时需要进行初始化调用接口 : CoInitialize(NULL);//初始化COM套件CoUninitialize();//释放COM套件在DLL入口中调用static bool isCoInitialize = false; //是否是自己进行的初始化int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved){ if(reason==D原创 2011-01-25 15:59:00 · 1174 阅读 · 0 评论 -
C++ builder API函数大全
<br />1. API之网络函数<br />WNetAddConnection 创建同一个网络资源的永久性连接 <br />WNetAddConnection2 创建同一个网络资源的连接 <br />WNetAddConnection3 创建同一个网络资源的连接 <br />WNetCancelConnection 结束一个网络连接 <br />WNetCancelConnection2 结束一个网络连接 <br />WNetCloseEnum 结束一次枚举操作 <br />WNe转载 2011-01-26 17:26:00 · 778 阅读 · 0 评论 -
位运算优化
原帖http://topic.csdn.net/u/20110426/15/889BF7F1-409B-4F15-91DF-1E21C5A14743.html问题:40位位计数.设计一个算法,输入一个64位整数,求其低40位中1的个数.已知高24位必定为0.算法1:循环.int bitcount_loop(UINT64 s){ int c; for (c = 0; s; s >>= 1) { c += s & 1; }转载 2011-04-26 22:27:00 · 997 阅读 · 0 评论 -
python 中如何使用 C 类型的数组? ctypes 的用法
【转自】http://hi.baidu.com/jxq61/blog/item/90037f272a9ae46c35a80fdc.htmlPython 在 ctypes 中为我们提供了类似C语言的数据类型,它的用途(我理解的)可能是:(1) 与 其他语言(如 C、Delphi 等)写的动态连接库DLL 进行交换数据,因为 python 的 数据与 DLL难以进行数据交换。(2) p转载 2011-11-22 13:11:40 · 15773 阅读 · 0 评论 -
shlwapi.h包含的操作系统路径相关的函数
shlwapi.h包含的操作系统路径相关的函数:如果要使用以下函数不要忘了包含头文件哦!另外还需要在project(工程)->setting(设置)->link(连接)下objiect/library modules(对象/库模块)中加入shlwapi.lib库文件,否则连接会出错。#pragma comment(lib,"shlwapi.lib")PathAddBacksla转载 2011-11-03 15:29:43 · 2354 阅读 · 0 评论 -
C++之python函数调用
代码如下,分别演示直接执行python语句、无返回无参数函数调用、返回单参数函数调用。返回多参数函数调用: #include #include using namespace std; //执行python命令 void ExecPythonCommand() { //直接执行 PyRun_SimpleString("from time impo转载 2011-12-01 13:04:52 · 2302 阅读 · 0 评论 -
RSA算法例
RSA算法基础基础RSA算法非常简单,概述如下:找两素数p和q取n=p*q取t=(p-1)*(q-1)取任何一个数e,要求满足e取d*e%t==1这样最终得到三个数: n d e设消息为数M (M 设c=(M**d)%n就得到了加密后的消息c 设m=(c**e)%n则 m == M,从而完成对c的解密。注:**表示次方,上转载 2012-01-08 16:38:45 · 607 阅读 · 0 评论 -
PostMessage&SendMessage的区别
PostMessage&SendMessage1, PostMessage只把消息放入队列,不管其他程序是否处理都返回,然后继续执行,这是个异步消息投放函数。而SendMessage必须等待其他程序处理消息完了之后才返回,继续执行,这是个同步消息投放函数。而且,PostMessage的返回值表示PostMessage函数执行是否正确;而SendMessage的返回值表示其他程序处理转载 2012-08-02 08:58:43 · 493 阅读 · 0 评论 -
显示桌面实现
C++实现显示桌面:/*程序: 显示桌面 C++ 实现说明: IShellDispatch4 接口只有WINDOWS XP以上的操作系统才支持,需要 shell32.dll 5.0或以上版本编译环境: Microsoft Visual Studio 2008 [cpp] view plaincopyprint?*/ #include原创 2014-07-16 15:01:27 · 561 阅读 · 0 评论 -
c++断点续传和多线程下载模块
在当今的网络时代,下载软件是使用最为频繁的软件之一。几年来,下载技术也在不停地发展。最原始的下载功能仅仅是个“下载”过程,即从WEB服务器上连续地读取文件。其最大的问题是,由于网络的不稳定性,一旦连接断开使得下载过程中断,就不得不全部从头再来一次。 随后,“断点续传”的概念就出来了,顾名思义,就是如果下载中断,在重新建立连接后,跳过已经下载的部分,而只下载还没有下载的部分。 无论“多转载 2014-06-23 20:29:13 · 1271 阅读 · 0 评论 -
游戏服务端究竟解决了什么问题?
出于收藏目的进行转载:原文链接 http://www.gameres.com/486233.html1、写在前面 写这篇文章之前也挺纠结的,一方面是因为游戏服务端其实不论架构上还是具体一些逻辑模块的构建,都属于非常成熟的技术,举个简单的例子,像端游的多zone/scene/game进程+单全局进程架构,网上随便一搜能搜出来几十篇内容差不多的。另一方面是因为中国特色MMO基本上把服转载 2016-02-08 22:32:10 · 2171 阅读 · 0 评论