相关疑难解决方法(0)

Linux相当于DllMain

在*nix .so库中,是否有一个入口点在系统加载和卸载时由系统调用?

更实际的说明:如果.so是用C++编写的,它包含带有构造函数和析构函数的全局对象,并且它是从没有构造/破坏概念的语言加载的,那么全局对象是否正确构造/破坏了?

c++ shared-libraries shared-objects

22
推荐指数
3
解决办法
1万
查看次数

从dll加载DLL?

从dll加载dll的最佳方法是什么?

我的问题是我无法在process_attach上加载一个dll,我无法从主程序加载dll,因为我不控制主程序源.因此我也不能调用非dllmain函数.

c++ dll multithreading loadlibrary

6
推荐指数
3
解决办法
1万
查看次数

GCC中的__attribute __((init_priority(X)))

__attribute__((init_priority(X)))在GCC中使用这样的:

Type1 __attribute__ ((init_priority (101))) name1 = value1;
Type2 __attribute__ ((init_priority (102))) name2 = value2;
Run Code Online (Sandbox Code Playgroud)

在不同的源文件中.我们说file1.cpp和file2.cpp.如果我在同一个库中使用它,它按预期工作,name1在name2之前初始化,但如果我在不同的库中使用它,初始化的顺序不是预期的.我在gcc文档中读到,这应该像我期望的那样在不同的库中工作,以定义初始化的顺序.我使用它的方式有什么问题吗?你有同样的问题吗?

PS:重构不是这个问题的解决方案,因为我必须从Visual Studio移植一个非常大的项目.

c++ static gcc initialization

6
推荐指数
1
解决办法
5637
查看次数