【发布时间】: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.so 和libndk.so,一切正常。
问题是,Qt 需要 argc 和 argv 才能创建 QApplication。
知道我无法访问共享库中的argv 和argc,我该如何做到这一点?
【问题讨论】:
-
您需要
QApplication变量吗?如果没有,就不要创建它。这样你就不会有QApplication消息循环了。
标签: c++ qt shared-libraries