8

プログラムのオプションが次のようになるように、プログラムで動作する2つのオプション、開始アドレスと終了アドレスが必要です。

--start_address 0xc0000000 --end_address 0xffffffff

options_descriptionそのような16進入力を取ることは可能ですか?入力を文字列と見なして、16進値に変換する必要がありますか?私は現在これを持っています:

  po::options_description desc("Allowed options");

  desc.add_options()
    ("help,h", "display this help message")
    ("path,p", po::value<std::string>(), "Executable file path")
    ("start_address,s", po::value<std::string>(), "Start address")
    ("end_address,e", po::value<std::string>(), "End address")
    ;

boost::lexical_castそのような変換を行うことができますか?

4

1 に答える 1

5

わかった。options_description を使用してオプションを入力し、std::stringstream を使用してオプションを解析して、次のように 16 進数に変換できることを発見しました。

  boost::uint32_t start_address;
  std::stringstream interpreter;

  interpreter << std::hex << vm["start_address"].as<std::string>();

  interpreter >> start_address;
于 2010-04-30T09:26:04.140 に答える