【问题标题】:Shared library in QtQt 中的共享库
【发布时间】:2013-03-23 16:49:18
【问题描述】:

基本上我想做的事情如下:

我有一个 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.solibndk.so,一切正常。 问题是,Qt 需要 argcargv 才能创建 QApplication

知道我无法访问共享库中的argvargc,我该如何做到这一点?

【问题讨论】:

  • 您需要QApplication 变量吗?如果没有,就不要创建它。这样你就不会有QApplication 消息循环了。

标签: c++ qt shared-libraries


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-29
    • 1970-01-01
    • 2022-01-08
    • 2013-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多