问题标签 [c2664]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - C2664 仅在发布配置中显示
我正在尝试构建一个用于发布的程序,但即使它在调试配置中运行良好,当我使用发布配置时出现此错误:
我尝试根据此线程添加“#define _SECURE_SCL 0”行,但这并没有改变任何东西。
这是引发错误的行所在的程序部分(“DeleteFile(temp);”是引发错误的特定行):
PS我正在使用VS 2010 Premium。
c++ - 错误 C2664:“发送”:无法将参数 2 从“ServerGreeting”转换为“const char *”
我是 C++ 的初学者,我正在将 C 代码(TWAMP RFC5357)移植到一个新项目(IPSLA RFC 6812)中,我遇到了这个问题:
当我尝试使用函数send时,我看到错误“error C2664: 'send' : cannot convert parameter 2 from 'ServerGreeting' to 'const char *'” “No user-defined-conversion operator available that can perform this conversion ,否则无法调用运算符”。
所以,我搜索了这个,我发现了一些我不明白的答案。
这是一些代码:
你能帮我解决这个问题吗?谢谢
c++ - 编译 64 位时由于 C++ C2664 处理向下转换的最佳实践
我有一个公开的方法,它接受一个 long* 作为这样的参数:
在这个方法中,我调用了一个接受 INT64* 的系统 API,如下所示:
编译为 x64 时,出现错误(正确):
我不想更改我公开的方法的签名,因为它会产生许多下游后果。假设我知道 p64 不会超过 long 的限制,那么解决这种情况的最佳方法是什么?
像这样的东西?
c++ - 错误 C2664:地图中的多地图
这是我的代码:
我收到错误 C2664:
看来我应该使用make_pair
,所以我尝试这样:
但我仍然得到同样的错误。
我该怎么办?
c++ - 64 位平台上的编译器错误 C2664
我有一个在 Visual Studio 2012 中使用 win 32 平台编译和运行的程序。将平台更改为 X64 后,它给出以下错误消息:
" test_integration.cpp(27): 错误 C2664: 'hcubature_v' : 无法将参数 2 从 'int (__cdecl *)(unsigned int,unsigned int,const double *,void *,unsigned int,double *)' 转换为 'integrand_v '"
有人可以提供一些建议吗?谢谢!
以下是一些额外的定义:
c++ - 当我运行 C++ 代码时,我总是得到 Visual Studio 错误 C2664
当我使用此代码时
我收到以下错误
C2664 'int GetKeyNameTextW(LONG,LPWSTR,int)':无法将参数 2 从 'char [128]' 转换为 'LPWSTR'
是这样NameBuffer
说的:
错误:“char*”类型的参数与“LPWSTR”类型的参数不兼容
有小费吗?
c++ - 在 VS 2015 中映射插入导致 C2664 错误,在 VS 2013 中有效
这段代码在 VS 2013 中运行良好,但我必须更新到 VS 2015,现在它抛出了一个错误。
我确实阅读了https://msdn.microsoft.com/en-us/library/s5b150wd.aspx并用谷歌搜索了很多,但我仍然不知道如何解决这个问题。
我正在使用 eigen 数学库来做一些 3d 数学的东西。Eigen 的 Vector3d 类不能用作容器的键,所以我创建了自己的 Vector3dLite 类来解决这个问题。
这是编译器抛出错误的地方
这是编译器错误:
我确实尝试在 Vector3dLite 对象之前编写 const,但显然语法不正确。
VertexIds.insert(make_pair(const Vector3dLite(tri.Vert1), unique_vertid));
c++ - 为什么我不能将两个不同的比较器传递给一个模板函数?
我在这里绞尽脑汁好几个小时,但我仍然不明白为什么在尝试运行此代码时会出现错误。一段时间后,我设法将其缩小到表达式:
这会导致问题 - 如您所见,我正在尝试为一个排序模板功能构建大量比较器
我收到五个错误,都是一样的:
严重性代码 描述 项目文件行抑制状态错误 C2664 'bool Bakery::pastryPrice::operator ()(const Pastry *,const Pastry *) const':无法将参数 1 从 'Deliver *' 转换为 'const Pastry *' Bakery c :\程序文件 (x86)\microsoft visual studio 14.0\vc\include\xutility 809
还有一个:
严重性代码 描述 项目文件行抑制状态错误 C2056 非法表达式 Bakery c:\program files (x86)\microsoft visual studio 14.0\vc\include\xutility 809
当我去掉上面写的表达式时,代码工作得很好——为什么我不能将两个不同的比较器传递给一个模板函数?
现在:
C2264 是一种编译器错误,当尝试向函数传递不兼容类型的参数时会发生这种错误。
但是 Deliver 功能有效,当我取下 Deliver 比较器时,Pastry 也编译了......那么不兼容的类型是什么?
c++ - Error C2664: cannot convert argument 1 from 'imaging::component_t *' to 'const imaging::component_t *&'
I have the error I mentioned in the title on this part of my code.
I tried image->setData(*buffer) or image->setData(&buffer) but that didn't work either. If anyone knows how to fix this I'd appreciate it. Thanks in advance.
c++ - 在一组转换为小写 c++ errorC2664
我正在尝试使用 STL 函数transform
将集合中的所有字符串转换为小写。但是我收到了 C2664 的错误。我想知道我的代码有什么问题?