1
這是我編碼的一個小應用程序。現在我想用/ h作爲默認選項,這樣當用戶運行它時,他可以獲得幫助信息。任何人都可以幫助我嗎?如何爲應用程序設置默認選項?
#include "Poco/Util/Application.h"
#include "Poco/Util/Option.h"
#include "Poco/Util/OptionSet.h"
#include "Poco/Util/HelpFormatter.h"
#include "Poco/Util/AbstractConfiguration.h"
#include "Poco/AutoPtr.h"
#include "Poco/Process.h"
#include "Poco/PipeStream.h"
#include "Poco/StreamCopier.h"
#include <fstream>
#include <iostream>
using Poco::Util::Application;
using Poco::Util::Option;
using Poco::Util::OptionSet;
using Poco::Util::HelpFormatter;
using Poco::Util::AbstractConfiguration;
using Poco::Util::OptionCallback;
using Poco::AutoPtr;
using Poco::Process;
using Poco::ProcessHandle;
using namespace std;
class SampleApp: public Application
{
protected:
void defineOptions(OptionSet& options)
{
Application::defineOptions(options);
options.addOption(
Option("help", "h", "Displays help details")
.required(false)
.repeatable(false)
.callback(OptionCallback<SampleApp>(this, &SampleApp::handleHelp)));
options.addOption(
Option("Execute", "e", "Executes a c++ code and stores output in processess.txt")
.required(false)
.repeatable(false)
.callback(OptionCallback<SampleApp>(this, &SampleApp::handleExecute)));
}
void handleHelp(const std::string& name, const std::string& value)
{
Help();
}
void handleExecute(const std::string& name, const std::string& value)
{
Execute();
}
void Help()
{
cout << "App.exe /option";
}
void Execute()
{
std::string cmd("D:\\Projects\\sample_cpp\\Debug\\sample_cpp.exe");
std::vector<std::string> path;
path.push_back("");
Poco::Pipe outPipe;
ProcessHandle ph = Process::launch(cmd, path, 0, &outPipe, 0);
Poco::PipeInputStream istr(outPipe);
std::ofstream ostr("processes.txt");
Poco::StreamCopier::copyStream(istr, ostr);
cout << "Chk for processess.txt file" << endl;
}
int main(const std::vector<std::string>& args)
{
return Application::EXIT_OK;
}
};
POCO_APP_MAIN(SampleApp)
你的意思是說,你想用默認調用成員函數'handleHelp'?我們大多數人可能不熟悉您使用的圖書館。所以,如果你能夠更多地解釋程序實際執行的內容並且可能是執行順序,那將會很有幫助。例如,在類定義中編寫'main'有點像我以前從未見過的。 – Mahesh 2011-06-16 14:43:32