0
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 を変換できません'unsigned long' to >'std::basic_string<_Elem,_Traits,_Ax>::_Has_debug_it' with [ _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_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(); 
}
于 2012-07-16T14:46:32.080 に答える