初始化和终止应用程序的最佳方法是什么?
单身是我需要的吗?加载的任何数量的dll都将使用相同的实例或单独的实例?
我正在使用log4cxx记录器实现。我想这个log4cxx应该只初始化一次。任何人都可以指向伪代码
答案 0 :(得分:2)
大多数应用程序都有一个入口点(对于标准C ++,它称为main
),您可以在其中创建持续应用程序生命周期的对象。
从你的描述来看,听起来你实际上正在编写一个服务库,用于其他应用程序,而不是应用程序(在传统意义上)本身。
唯一安全的做法是让您的服务重新初始化,因为没有任何东西可以阻止应用程序动态加载链接到您的库的dll
,明确卸载dll
然后重新加载它。
对于您的库,中间dll
卸载和正常终止之间没有可观察到的差异。
在加载库时,您可以使用共享/全局数据来跟踪初始化,以便您只执行昂贵的初始化步骤,这些步骤可以在客户端之间共享一次。
也许您应该概述重新初始化库会导致的困难?