错误 C2664 在 hid_device.h 中

Error C2664 in hid_device.h

本文关键字:device hid C2664 错误      更新时间:2023-10-16
std::string get_path( void ) { return m_devicePath; }

调试输出:

hid_device.h(37(:错误 C2664:>'std::basic_string<_Elem,_Traits,_Ax>::basic_string(std::basic_string<_Elem,_Traits,_Ax>::>_Has_debug_it(' :无法将参数 1 从"无符号长整型"转换为>"std::basic_string<_Elem,_Traits,_Ax>::_Has_debug_it" 跟 [ _Elem=字符, _Traits=std::char_traits, _Ax=标准::分配器 ] 结构体 'std::basic_string<_Elem,_Traits,_Ax>::_Has_debug_it' 的构造函数声明为"显式" 跟 [ _Elem=字符, _Traits=std::char_traits, _Ax=标准::分配器 ]

  • 选项 1:

错误的包括。您应该在文件顶部有#include <string>,而不是#include <string.h>或任何其他变体。

  • 选项 2:

m_devicePathunsigned long(怀疑(,不能直接转换为std::string

使用std::to_string() (C++11(

std::string get_path( void ) { return std::to_string(m_devicePath); }

stringstream (C++03(unsigned long转换为std::string

std::string get_path( void ) { 
     std::stringstream ss;
     ss << m_devicePath;
     return ss.str(); 
}