我正在QTextCodec
一个静态库中实现 Qt 框架。为了让我的编解码器实现注册到QTextCodec::codecForMib(int)
and QTextCodec::codecForName(const char *)
,必须发生一些事情:
- 必须初始化编解码器的实例(但不一定要使用)。
- 不得删除实例或超出范围。
QTextCodec::QTextCodec()
这似乎是由于使用已知编解码器的字典注册实例的事实。好的。因此,如果我向我的应用程序(与静态库链接)添加一个全局变量,单元测试就会成功。
但是,我宁愿在静态库中拥有全局实例,因此链接到它的应用程序不需要自己做跑腿工作。但是我不知道如何在没有应用程序引用的情况下在静态库中初始化一个类实例。
除非我在我的应用程序中引用,否则既不QMyTextCodec x
也不QMyTextCodec *x = new QMyTextCodec
实际初始化类的实例。x