C++
如影随从
这个作者很懒,什么都没留下…
展开
-
C++进阶 必读书籍
C++进阶 必读书籍原创 2015-04-21 15:27:23 · 1838 阅读 · 1 评论 -
C++智能指针的设计和使用
对于一个C++的使用者来说,指针的使用可以算的上是家常便饭,但是在使用的过程中,很多时候可能会因为new或者malloc了一个对象,而忘记最后结束的时候去释放掉(我就会犯这样子的错误),从而导致内存泄露。而此时智能指针可能可以帮助我去解决这个问题。智能指针(smart pointer)是利用个引用计数的策略去处理指针的释放,从而保证指针的安全性。通常情况下,我们会自己去设计一个智能指针类去管理原创 2014-12-21 15:49:40 · 876 阅读 · 0 评论 -
C++编程总结之虚函数的使用
对于一个单一的类来说,析构函数是不是虚函数,其没有实质性的意义。但是当当前类作为基类的时候,基类的析构函数是不是虚函数则会对程序带来不同程度的影响。看下下面的代码运行结果:#includeusing namespace std;class Base{public: Base() { cout << "Base:Constructor" <<endl; } ~Base()原创 2014-12-21 21:31:27 · 607 阅读 · 0 评论 -
fatal error C1010: unexpected end of file while looking for precompiled head
解决方案:查下是在哪个文件出错,找到包含出错这个文件的CPP文件右键单击项目工程中的cpp文件,在菜单Project->Settings->C/C++->Precompile Header,设置为第一项:Not using precompile headers。 我的这样弄过就可不出错了原创 2014-08-08 15:25:34 · 511 阅读 · 0 评论 -
VC 线程间通信的三种方式
VC 线程间通信的三种方式 1.使用全局变量(窗体不适用) 实现线程间通信的方法有很多,常用的主要是通过全局变量、自定义消息和事件对象等来实现的。其中又以对全局变量的使用最为简洁。该方法将全局变量作为线程监视的对象,并通过在主线程对此变量值的改变而实现对子线程的控制。 由于这里的全局变量需要在使用它的线程之外对其值进行改变,这就需要通过volatile关键字对转载 2014-09-10 11:35:50 · 889 阅读 · 0 评论 -
MFC学习之CTreeCtrl控件的使用
树状控件CTreeCtrl主要用于树状结构的功能使用,其中树状结构有一个根接点(Root),一个根接点下可以有多个子接点或者不设置子接点,子接点也可以作为父节点,使其下也包含若干的子接点,总是可以根据接点之间的上下级关系然后设置相应的接点。 MTreeCtrl::InsertItem 函数为为控件添加接点,其结构如下: HTREEITEM InsertItem(原创 2014-04-28 23:42:47 · 7803 阅读 · 0 评论 -
C++中wstring和string的互相转换
C++中wstring和string的互相转换原创 2015-05-06 16:51:15 · 2612 阅读 · 0 评论 -
Windows和Linux下获取当前可执行文件路径和工作目录
(1)获取当前可执行文件路径:#include <shlwapi.h>#pragma comment(lib, "shlwapi.lib")wchar_t szExePath[MAX_PATH] = {0};GetModuleFileNameW(NULL, szExePath, sizeof(szExePath));PathRemoveFileSpecW(szExePath);原创 2015-04-09 10:24:15 · 7257 阅读 · 0 评论 -
vs2003 调试器失效的解决方法 .
某日打开VS2003调试程序,突然遇到一个错误提示:The debugger is not properly installed, run setup to install or repair the debugger经分析,记得是360安全卫士把mdm关掉了。 重装偶所不欲也,想别的办法解决。经试验,可以按如下办法解决:C:/Program Files/Common Fi原创 2014-07-23 12:37:47 · 605 阅读 · 0 评论 -
MFC中模态对话框和非模态对话框
MFC的对话框非为两种,一种叫模态对话框(Modal Dialog Box,又叫做模式对话框),一种叫做非模式对话框(Modaless Dialog Box,又叫无模式对话框)。两者的区别在于当对话框打开的时候,是否允许用户进行其他对象的操作。原创 2014-08-07 22:33:47 · 1006 阅读 · 0 评论 -
递归和非递归实现计算二叉树叶子节点的个数
递归和非递归实现计算二叉树叶子节点的个数原创 2014-04-29 17:03:10 · 8553 阅读 · 0 评论 -
基于TCP(面向连接)的Socket编程(来自《VC++深入详解》)
基于TCP的socket编程的服务器断程序流程如下:1 创建套接字(socket)。2 将套接字绑定到一个本地地址和端口上(bind)。3 将套接字设为监听模式,准备接受客户请求(listen)。4 等待客户请求到来;当请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字(accept)。5 用返回的套接字和客户端进行通信(send/recv)。6 返回,等待另转载 2014-05-20 16:02:20 · 940 阅读 · 0 评论 -
链表逆序的实现方法
typedef struct Node{ char iElement; Node* pNext;};typedef struct Link{ Node* pHead; int iLinkSize;};Link* initLink(){ Link* pLink = (Link*)malloc(sizeof(Link))原创 2014-05-08 16:17:07 · 686 阅读 · 0 评论