gpt4 book ai didi

c++ - 尝试将 .c 文件编译为 .cpp 时出现 VS 2013 错误 C2664

转载 作者:太空宇宙 更新时间:2023-11-04 05:58:51 25 4
gpt4 key购买 nike

我正在为 Max 6 编写我的第一个外部程序,但标题错误让我退缩了。我已经在网上爬了一个星期以找到标题问题的解决方案,但没有运气。有很多相关的主题

error C2664: cannot convert parameter 1 from 'X' to 'Y'

但没有一个建议的解决方案适合我的情况,因为它似乎是特定于 Max 对象的情况。

更重要的是,我有一个主要的 .c 外部文件,它使用各种其他 .cpp 文件和库。出于这个原因,我想将其编译为 .cpp 文件。据我所知,这应该没有问题。但是,当我尝试在 Visual Studio 中编译它时,出现以下错误:

error C2664: 't_object *object_alloc(t_object *,const char *,...)' : cannot convert argument 1 from 'void *' to 't_object *' "

有没有人面临并设法解决任何类似的问题?是不是我错过了更深刻的东西?

提前致谢!

最佳答案

与 C 不同,C++ 不允许将 void 指针隐式转换为非 void 指针。似乎您正试图将 void 指针作为第一个参数传递给该函数,但由于无法将其转换为参数类型,因此发生错误。

您可以通过将 void 指针直接转换为目标指针类型来解决此问题。

object_alloc(static_cast<t_object*>(p), ...)

(仅供引用,反向转换——非空指针到空指针——是标准转换,可以隐式发生。static_cast 允许执行 标准转换序列的反向。)

关于c++ - 尝试将 .c 文件编译为 .cpp 时出现 VS 2013 错误 C2664,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22364063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com