Qt中的共享库

时间:2013-03-23 16:49:19

标签: c++ qt shared-libraries

基本上我想做的是以下内容:

我有一个Core.cpp加载共享库(SDL lib,Ncurses lib和Qt Lib)......

这是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.solibndk.so,而且一切都很有效。 问题是,Qt需要argcargv才能创建QApplication

如果我无法访问共享库中的argvargc,我怎样才能实现这一目标?

1 个答案:

答案 0 :(得分:0)

QApplication需要argcargv来查找特定于Qt的选项,并确定应用程序路径。如果您不想从真实的命令行解析这些选项,则可以构建自己的argcargv以传递给QApplication构造函数。