基本上我想做的是以下几点:
我有一个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
and libndk.so
,并且一切正常。问题是,Qt 需要argc
并且argv
为了创建QApplication
.
我怎么能做到这一点,知道我无权访问argv
和argc
在我的共享库中?