在VC ++和GCC中,main
不是程序的真正入口点;但我们可以通过编译器参数-ENTRY
和-Wl,-eentry
重置程序的真实入口点。
例如:VC ++中默认的实际入口是mainCRTStartup
;也就是说,mainCRTStartup
将在main
之前调用。
我的问题是:如果我的程序中有多个全局C ++变量,那么它们是否保证在mainCRTStartup
完成之前不会被初始化?
问题背景:
我有一个闭源框架,它的全局有一个bug 变量ctors。如果我的修复代码可以在之前执行,我可以修复该错误 全球变量ctors。
答案 0 :(得分:1)
如何?你打算挂钩mainCRTStartup()?在这种情况下,您可以运行代码并从钩子调用mainCRTStartup()。 (抱歉,还不能发表评论)