基本上我想做的是以下内容:
我有一个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.so
和libndk.so
,而且一切都很有效。
问题是,Qt需要argc
和argv
才能创建QApplication
。
如果我无法访问共享库中的argv
和argc
,我怎样才能实现这一目标?
答案 0 :(得分:0)
QApplication
需要argc
和argv
来查找特定于Qt的选项,并确定应用程序路径。如果您不想从真实的命令行解析这些选项,则可以构建自己的argc
和argv
以传递给QApplication
构造函数。