摘要:在使用 GDI + 的 Microsoft 基础类 (MFC) 应用程序的调试版本时, 可能会出现类似于以下内容的错误消息:错误 C2660: Gdiplus::GdiplusBase::operator new: 函数不带三个参数 原因:在调试版本中 MFC 定义扩展到带有两个额外的参数的重载 new 运算符的 new 运算符的预处理器宏。额外的参数是源文件名称和代码行号。 MFC 可以使用此信息对程...在调试版本中 MFC 定义扩展到带有两个额外的参数的重载 new 运算符的 new 运算符的预处理器宏。额外的参数是源文件名称和代码行号。MFC 可以使用此信息对程序员在调试模式下时报告内 阅读全文
posted @ 2011-08-23 10:23 心随灵动 阅读(1389) 评论(0) 推荐(0) 编辑
摘要:VC++中GlobalAlloc()、malloc()和new()函数都可以用来实现内存的动态分配,那么它们之间有什么区别呢?三者的区别主要有以下几点:1、GlobalAlloc()函数在程序的堆中分配一定的内存,是Win16的函数,对应于系统的全局栈,而在Win32中全局栈和局部堆的区别已经不存在了,因此不推荐在Win32中使用该函数。2、malloc()是标准库函数,而new则是运算符,它们都可以用于申请动态内存。3、new()实际上调用的是malloc()函数。4、new运算符除了分配内存,还可以调用构造函数,但是malloc()函数只负责分配内存。对于非内部数据类型的对象而言,只使用. 阅读全文
posted @ 2011-08-23 09:29 心随灵动 阅读(484) 评论(0) 推荐(0) 编辑