C2440“初始化”:无法在 Microsoft VS 2010 实用程序文件中将 int 转换为 unsigned char*

发布于 2024-11-25 19:19:57 字数 581 浏览 2 评论 0原文

当我编译 VS 2010 C++ 项目时,以下段落在文件 c:\program files\microsoft Visual Studio 10.0\vc\include\utility 中引发错误,

template<class _Other1,
    class _Other2>
    _Pair_base(_Other1&& _Val1, _Other2&& _Val2)
    : first(_STD forward<_Other1>(_Val1)),
        second(_STD forward<_Other2>(_Val2))
    {   // construct from moved values
    }

然后该错误后面跟着另一个错误 C2439 'std::_Pair_base..::第一个元素无法转换'

(所有错误均从德语翻译而来,因此它们的英语听起来可能略有不同)

我正在尝试在 VS 2010 上编译 AxCrypt 项目,项目文件已自动从 VS 2008 转换(但我不知道它是否可以在那里工作,我只有 VS 2010)。

When I compile my VS 2010 C++ project the following passage raises an error in file c:\program files\microsoft visual studio 10.0\vc\include\utility

template<class _Other1,
    class _Other2>
    _Pair_base(_Other1&& _Val1, _Other2&& _Val2)
    : first(_STD forward<_Other1>(_Val1)),
        second(_STD forward<_Other2>(_Val2))
    {   // construct from moved values
    }

The error is then followed by another error C2439 'std::_Pair_base..::first element could not be converted'

(All errors translated from German, so they may sound slightly different in English)

I am trying to compile the AxCrypt project on VS 2010, the project files have automatically been converted from VS 2008 (but I don't know if it would work there, I only have VS 2010).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

错爱 2024-12-02 19:19:57

问题出在使用的 Crypto++ lib 中,在 VS 2010 上编译之前需要进行两个小修改。

a) pubkey.h line 243: 
return HashIdentifier(NULL, 0); 
-> 
return HashIdentifier((const byte*)NULL, 0); 
b) zdeflate.cpp line 389 
#if defined(_STDEXT_BEGIN) && !(defined(_MSC_VER) && _MSC_VER < 1400) 
&& !defined(_STLPORT_VERSION) 
-> 
#if defined(_STDEXT_BEGIN) && !(defined(_MSC_VER) && (_MSC_VER < 1400 
|| _MSC_VER >= 1600)) && !defined(_STLPORT_VERSION) 

更多详细信息请参见:
http://groups.google.com/group/cryptopp-users/browse_thread /线程/714f3ec6287a50b1

The problem was in the Crypto++ lib used which needs two small modifications before compiling on VS 2010.

a) pubkey.h line 243: 
return HashIdentifier(NULL, 0); 
-> 
return HashIdentifier((const byte*)NULL, 0); 
b) zdeflate.cpp line 389 
#if defined(_STDEXT_BEGIN) && !(defined(_MSC_VER) && _MSC_VER < 1400) 
&& !defined(_STLPORT_VERSION) 
-> 
#if defined(_STDEXT_BEGIN) && !(defined(_MSC_VER) && (_MSC_VER < 1400 
|| _MSC_VER >= 1600)) && !defined(_STLPORT_VERSION) 

More details here:
http://groups.google.com/group/cryptopp-users/browse_thread/thread/714f3ec6287a50b1

不离久伴 2024-12-02 19:19:57

此代码可以重现此错误:

pair<int,char*> aPair(10,20);

由于我指定的 second 类型是 char* 但我传递的是 int,它无法转换为 <代码>字符*。

请注意,这是您可能遇到的错误的过于简单的示例。您可能正在使用地图

This code can reproduce this error:

pair<int,char*> aPair(10,20);

Since second type I specified is of char* but I am passing an int, which cannot be converted to char*.

Note that this is oversimplified sample for the error you might be encountering. Probably you are using a map.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文