隐藏错误C2664
std::string get_path( void ) { return m_devicePath; }
调试输出:
hid_device.h(37):error C2664:>'std :: basic_string <_Elem,_Traits,_Ax> :: basic_string(std :: basic_string <_Elem,_Traits,_Ax> ::> _ Has_debug_it)':无法将参数1从'unsigned long'to>'std :: basic_string <_Elem,_Traits,_Ax> :: _ Has_debug_it'with [_Elem = char,_Traits = std :: char_traits,_Ax = std :: allocator] struct std :: basic_string的构造函数使用[_Elem = char,_Traits = std :: char_traits,_Ax = std :: allocator]将<_Elem,_Traits,_Ax> :: _ Has_debug_it'声明为'explicit'
错误包括。 您应该有#include <string>
,而不是#include <string.h>
或文件顶部的任何其他变体。
m_devicePath
是一个unsigned 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();
}
链接地址: http://www.djcxy.com/p/68425.html
上一篇: Error C2664 in hid