error C2665: “operator new” : 5个重载中没有一个可以转换参数1(从“const char [71]”类型)

error C2665: “operator new” : 5个重载中没有一个可以转换参数1(从“const char [71]”类型)

这个错误是怎么回事啊,搜索了整个项目好像没有可疑的new操作阿。这个错误是在将两个工程合并成一个过程中产生的。合并前没有这样的错误。

MainFrm.cpp

d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xmemory(34) : error C2665: “operator new” : 5 个重载中没有一个可以转换参数 1(从“const char [71]”类型)

d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\new.h(100): 可能是“void *operator new(size_t,const std::nothrow_t &) throw()”

d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\new.h(108): 或       “void *operator new(size_t,void *)”

试图匹配参数列表“(const char [71], int)”时

d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xmemory(137) : 参见对正在编译的函数模板实例化“_Ty *std::_Allocate<std::allocator<_Ty>::value_type>(size_t,_Ty *)”的引用

with

[

_Ty=std::allocator<char>::value_type

]

d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xmemory(136) : 编译类模板成员函数“std::allocator<_Ty>::pointer std::allocator<_Ty>::allocate(std::allocator<_Ty>::size_type)”时

with

[

_Ty=char

]

d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xstring(30) : 参见对正在编译的类模板实例化“std::allocator<_Ty>”的引用

with

[

_Ty=char

]

d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xstring(46) : 参见对正在编译的类模板实例化“std::_String_val<_Ty,_Alloc>”的引用

with

[

_Ty=char,

_Alloc=std::allocator<char>

]

d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xstring(1569) : 参见对正在编译的类模板实例化“std::basic_string<_Elem,_Traits,_Ax>”的引用

with

[

_Elem=char,

_Traits=std::char_traits<char>,

_Ax=std::allocator<char>

]

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

据说是因为STL与DEBUG NEW运算符的冲突(影响list、vector等)

解决方法1:注释掉以下代码:

#ifdef _DEBUG

#define new DEBUG_NEW

#endif

解决方法2:

将:代码中的#include <vector>移到stdafx.h的开头,也就是#program once的后面。

时间: 2024-08-10 01:58:48

error C2665: “operator new” : 5个重载中没有一个可以转换参数1(从“const char [71]”类型)的相关文章

error C2665: “cv::merge”: 3 个重载中没有一个可以转换所有参数类型

源代码为: merge(ptr,gradImg); 改为: merge(ptr,3,gradImg); 即可. 这个是针对merge函数的,仅供参考

error C2665: “outtextxy”: 2 个重载中没有一个可以转换所有参数类型

错误描述 一些程序在 VC6 下运行好好地,但是放到 VC2008 及更高版本 VC 下编译却报错误(以下仅以 VC2008 举例,高版本 VC 类似),例如使用如下语句: outtextxy(10, 20, "Hello World"); 在 VC6 下可以成功编译,但在 VC2008 下编译后会有错误. 中文版错误提示如下: error C2665: “outtextxy”: 2 个重载中没有一个可以转换所有参数类型 英文版错误提示如下: error C2665: 'outtext

MFC之调用DLL的问题:error C2664: “LoadLibraryW”: 不能将参数 1 从“const char *”转换为“LPCWSTR

今天在项目中遇到了一个小小的问题,在调用别人动态连接库(DLL)的时候,总是出现如下提示,导致程序无法正常运行,编程环境:VS2010+MFC 问题提示:error C2664: "LoadLibraryW": 不能将参数 1 从"const char *"转换为"LPCWSTR 经过查找资料,问题得以解决,感谢: 解决方法来源于:http://blog.sina.com.cn/s/blog_6a2236590100xbgl.html 1 静态调用Lib

error C2664: “CWnd::MessageBoxW”: 不能将参数 1 从“const char [17]”转换为“LPCTSTR

MFC中给某个菜单项添加一个事件处理程序: 1.      void CMainFrame::OnTest()   2.      {   3.            MessageBox("you clicked Menu item.");   4.            // TODO: 在此添加命令处理程序代码    5.      }   编译时报告如下错误:error C2664: "CWnd::MessageBoxW": 不能将参数 1 从"c

error C2664: “MessageBoxW”: 不能将参数 2 从“const char [14]”转换为“LPCWSTR”

vs2008提示 error C2664: “CWnd::MessageBoxW”: 不能将参数 1 从“const char [17]”转换为“LPCTSTR” 在外面用vs2005编写mfc程序的时候经常要MessageBox("提示信息")函数,在vc6.0是没有问题的,但是在vs2005却会有下面的提示: error C2664: “CWnd::MessageBoxW”: 不能将参数 1 从“const char [17]”转换为“LPCTSTR” 这个错误提示的原因是VS20

error: C2664: “zajiao::zajiao(const zajiao &amp;)”: 无法将参数 1 从“const char [12]”转换为“char *”

原本打算用一个字符串"ABCDEF12345"作为类zajiao的构造函数的参数,用来创建类zajiao的对象zajiao1. 1 zajiao zajiao1("ABCDEF12345"); 结果提示: F:\Users\denggelin\Documents\qtduojicheng\main.cpp:31: error: C2664: “zajiao::zajiao(const zajiao &)”: 无法将参数 1 从“const char [12]

error C2664: “LoadLibraryW”: 不能将参数 1 从“const char *”转换为“LPCWSTR”

在使用VS2010编写运行时动态链接dll文件时出现的一个问题,问题解决得益于此文章: http://blog.sina.com.cn/s/blog_6a2236590100xbgl.html 通过调用这个函数:LoadLibrary出现的该问题.原因 :工程只支持UNICODE字符解决方法:1.在解决方案资源管理器中的工程上右键属性->配置属性-->常规--->字符集---->使用多字节符字符集 2.也就是宽字符,所以下面这行代码,应该编译有错误hinst=LoadLibrary

【转载】C++编译出现 error C2664: 不能将参数 2 从“const char [5]”转换为“LPCTSTR”解决办法。

编译程序的时候出现这样的错误,原因是在新建MFC项目的时候,设置字符集Unicode的属性. 解决方法一: 在VC2010的解决方案管理器窗口内,右击你的项目“项目”,然后选“属性”(最后一项),再点“配置属性”,是个“+”号,把它展开,然后选“常规”选项卡,倒数第三项“字符集”,选择“使用多字节字符集”.问题解决. 不过还是建议使用Unicode,否则你的程序将有很大的局限性:要是你的程序只在西方发布还好,但毕竟是适应中国大陆的程序吧,所以建议使用Unicode. 解决方法二: 使用调用CSt

Oracle中把一个DateTime的字符串转化成date类型。to_date(&#39;2016/12/8 18:55:43&#39;,&#39;yyyy/MM/dd hh24:mi:ss&#39;),

Oracle中把一个DateTime或者该形态字符串转化成date类型. to_date('2016/12/8 18:55:43','yyyy/MM/dd hh24:mi:ss'), 或者: select to_date('2010-10-20 13:23:44','yyyy-mm-dd hh24:mi:ss')  from dual; 是用" /"还是" -"取决于字符串是什么结构的. date类型转换成char类型, 例子to_char(' ','yyyymmd