gpt4 book ai didi

c++ - 错误 C2664 : cannot convert from 'LPTSTR []' to 'LPCTSTR *'

转载 作者:行者123 更新时间:2023-11-28 01:45:53 25 4
gpt4 key购买 nike

我使用 Visual Studio 2013,但出现以下错误:

error C2664: 'DWORD Options(int,LPCTSTR *,LPCTSTR,...)' : cannot convert argument 2 from 'LPTSTR []' to 'LPCTSTR *' 54 1 ConsoleApplication3

这是代码:

DWORD Options(int argc, LPCTSTR argv[], LPCTSTR OptStr, ...){
// Code
}
int _tmain(int argc, LPTSTR argv[]){
iFirstFile = Options(argc, argv, _T("s"), &dashS, NULL);
// Code
}

有人知道怎么解决吗?
并解释为什么会出现此错误?

最佳答案

“并解释为什么会出现此错误?”

可以找到此错误背后的原因here :隐式转换“...会让您在没有强制转换的情况下悄无声息地修改const对象...”

“有人知道如何修复它吗?”

LPCTSTR argv[] 不是常量对象,而是常量字符串数组。数组本身可以修改 (argv[0] = 0;)。由于上面链接中的建议是避免强制转换(“...请不要围绕编译时错误消息进行指针转换...”),最简单的解决方案是更改Options 的签名(注意添加的 const):

DWORD Options(int argc, const LPCTSTR argv[], LPCTSTR OptStr, ...)

关于c++ - 错误 C2664 : cannot convert from 'LPTSTR []' to 'LPCTSTR *' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45129290/

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