0

基本的に私がやりたいことは次のとおりです。

Core.cpp共有ライブラリ (SDL ライブラリ、Ncurses ライブラリ、および Qt ライブラリ) をロードする があります...

は次のmainとおりです。

  int main(int argc, char **argv, char **env)
  {
     Core                  *core;
     LibGestionnary        gestionnary;
     IDisplay              *display;
     display = gestionnary.loadLibFromName(std::string(argv[3]));
     display->Boucle(core);
  }

DisplaySDL、DisplayNcurses、および DisplayQT が継承するインターフェイスは次のとおりです。

#ifndef IDISPLAY_HH__
# define IDISPLAY_HH__

#include "../Core/Core.hh"

class IDisplay
{
public:
  virtual ~IDisplay() { }
  // virtual void dispSnake(Snake snake) = 0;                                   
  // virtual void dispBlock(Block block) = 0;                                   
  // virtual void dispMap(Map map) = 0;                                         
  virtual void Boucle(Core *core) = 0;
  virtual void displayEnd(Core *core) = 0;
};

#endif

libsdl.soとを簡単にロードできlibndk.so、すべてがうまく機能しています。問題は、Qt が必要argcでありargvQApplication.

共有ライブラリにargvアクセスできないことを知って、これを行うにはどうすればよいですか?argc

4

1 に答える 1

0

Qt 固有のオプションを探し、アプリケーション パスを決定する必要QApplicationargcあります。argv実際のコマンド ラインからこれらのオプションを解析したくない場合は、独自のオプションを作成argcargvてコンストラクタに渡すことができますQApplication

于 2013-03-23T16:57:50.947 に答える