摘要:
由于给类加了些东西结果,出现了大问题: 析构函数调用完后出错, 百思不得其解, 最后想到这个问题, 搜索了一下:以下文字引用自http://hi.baidu.com/huhe/blog/item/0b422edd1f1563d98c1029a3.html很感谢作者的分析一个模块一个堆,一个线程一个栈。dll里malloc的内存,在exe里free会出错。CRT(C运行时期库)不是使用进程缺省的堆来实现malloc(new中调用malloc)的,而是使用一个全局句柄HANDLE _crtheap来分配内存的。这个_crtheap是在XXXCRTStartUp(CRT提供的进口点函数)中创建的。 阅读全文
摘要:
原始位图, 由于不能传bmp文件, 都转换成了jpg:处理后效果图:直接代码:// test1.cpp : Defines the entry point for the application.//#include "stdafx.h"#include "test1.h"#include <WindowsX.h>#define MAX_LOADSTRING 100// Global Variables:HINSTANCE hInst; // current instanceTCHAR szTitle[MAX_LOADSTRING]... 阅读全文
摘要:
#include <iostream>#include <cstdarg>using namespace std;typedef int (*PCALLBACK)(int nCount,va_list vlist);int addInt(int nCount,va_list vlist){ int sum = 0; for (int i=0;i<nCount;i++) { sum+=va_arg(vlist,int); } return sum;}void func(PCALLBACK pCall,int nCount,...){ va_lis... 阅读全文
摘要:
#include <iostream>#include <windows.h>#include <tchar.h>#include <commctrl.h>using namespace std;int _tmain(int argc, TCHAR* argv[], TCHAR* envp[]){ int nRetCode = 0; SIZE_T len = 256; TCHAR * ptb = new TCHAR[256]; TCHAR * buf = new TCHAR[256]; SIZE_T size; HWND hwnd = FindW 阅读全文
摘要:
定义了调用操作符的类,其对象常称为函数对象,即它们是行为类似函数的对象。可以为类类型的对象重载函数调用操作符。一般为表示操作的类重载调用操作符。函数调用操作符必须声明为成员函数。一个类可以定义函数调用操作符的多个版本,由形参的数目或类型加以区别。例如,可以定义名为 absInt 的结构,该结构封装将 int 类型的值转换为绝对值的操作:class absInt{public: int operator() (int val) { return val < 0 ? -val : val; }};貌似什么的例子没什么吸引力, 下面来个例子.比如我们有个存储字符... 阅读全文
摘要:
今天安装wamp后,竟然不能访问ForbiddenYou don't have permission to access / on this server.很明显没权限, 因为我将www对应的目录设置到了一个svn的目录, 我去查看了,发现目录是只读状态(其实是第三态),我把给成可读, 确定后再次查看还是这个状态, 所以我以为是这个原因(因为我在宿舍就可以映射www到svn目录),到网上搜索发现,这个第三态并没有实际作用,就是所和这个没关系.在网上找的改apache的配置文件都没用. 纠结啊, 然后我试了一下127.0.0.1,发现可以访问,ping localhost也通(不同的话改 阅读全文
摘要:
首先在介绍可变参数表函数的设计之前,我们先来介绍一下最经典的可变参数表printf函数的实现原理。一、printf函数的实现原理在C/C++中,对函数参数的扫描是从后向前的。C/C++的函数参数是通过压入堆栈的方式来给函数传参数的(堆栈是一种先进后出的数据结构),最先压入的参数最后出来,在计算机的内存中,数据有2块,一块是堆,一块是栈(函数参数及局部变量在这里),而栈是从内存的高地址向低地址生长的,控制生长的就是堆栈指针了,最先压入的参数是在最上面,就是说在所有参数的最后面,最后压入的参数在最下面,结构上看起来是第一个,所以最后压入的参数总是能够被函数找到,因为它就在堆栈指针的上方。print 阅读全文
摘要:
方法一:需要你手动给工程做如下设置:右键工程属性-》配置属性-》链接器-》系统-》子系统 选择下拉的第一个控制台方法二:ctrl+f5进行运行调试第一种我的没有效果,可能第一种说的是vs2010,我的vs2008 阅读全文
摘要:
代码之下,了无疑问#include <Windows.h>#include <iostream>using namespace std;class fuck{private: RECT m_rc; static const RECT m_emptyRc;public: fuck(RECT rc = m_emptyRc){m_rc=rc;cout<<m_rc.left<<":"<<m_rc.top<<":"<<m_rc.right<<":"& 阅读全文
摘要:
explicit用来防止由构造函数定义的隐式转换。要明白它的作用,首先要了解隐式转换:可以用单个实参来调用的构造函数定义了从形参类型到该类类型的一个隐式转换。例如:class things{ public: things(const std::string &name = ""): m_name(name),height(0),weight(10){} int CompareTo(const things & other); std::string m_name; int height; in... 阅读全文