Tib*_*ibi 3 c++ dll shared-libraries
是否可以在加载(或卸载)库时立即执行的共享库(Windows 上的 .dll 和 linux 上的 .so)中创建函数?
就像 main() 函数是可执行文件的入口点一样,我可以定义一个函数在加载或卸载 DLL 时执行吗?
例如:
void _atstart()
{
// Initialize some stuff needed by the library
}
void _atexit()
{
// Release some allocated resources
}
Run Code Online (Sandbox Code Playgroud)
我想我在某处看到过这样的例子,但我再也找不到了,并且在互联网上找不到任何关于此的信息。
如果它有任何用处,我正在用 MinGW 编译代码。
在 C++ 中,您至少可以创建某个类的全局实例
class ResourceHolder {
public:
ResourceHolder() {
// at start
}
~ResourceHolder() {
// at exit
}
};
ResourceHolder theHolder;
Run Code Online (Sandbox Code Playgroud)
但是,如果您在库中使用另一个全局变量,则需要一些意识。