0
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)' : 无法从'unsigned long' 到 >'std::basic_string<_Elem,_Traits,_Ax>::_Has_debug_it' 与 [ _Elem=char, _Traits=std::char_traits, _Ax=std::allocator ] 结构 'std::basic_string 的构造函数<_Elem,_Traits,_Ax>::_Has_debug_it' 用 [ _Elem=char, _Traits=std::char_traits, _Ax=std::allocator ] 声明为“显式”

4

1 回答 1

0
  • 选项1:

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

  • 选项 2:

m_devicePath是一个unsigned long(怀疑),不能直接转换为std::string.

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

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

或 a stringstream (C++03)将其转换unsigned long为 a std::string

std::string get_path( void ) { 
     std::stringstream ss;
     ss << m_devicePath;
     return ss.str(); 
}
于 2012-07-16T14:46:32.080 回答