C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在C/C++中是否有任何方法可以检测静态初始化期间代码是否正在运行?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在编写一个可用作DLL的跟踪库.它基本上被我系统中的每个组件使用.一个棘手的要求是,即使在main()运行之前,也需要在进程生命周期的早期调用跟踪函数.

该库的消费者包括可执行文件,静态链接的DLL,延迟加载的DLL和动态加载的DLl.所有的变化.

一些跟踪功能对静态初始化不起作用,但其他功能很好.理想情况下,我希望能够在初始化时为消费者提供最低限度的安全功能,然后在初始化完成后提供完整功能.

要求消费者明确表示“我已完成初始化”调用本身是行不通的,因为某些消费者本身就是DLL并且无法控制托管它们的可执行文件.同样的问题只是将一个级别向上移动.

我希望有一种方法让我可以询问运行时是否或者我当前正在静态初始化中运行,或者该阶段是否已完成.这样的事情可能吗?

更复杂的是,我需要在5个平台上运行.我不需要一次性写入解决方案,但我确实需要在所有平台上以某种方式使其工作.

解决方法

全局变量?就像是:

bool initTime = true;

你的DLL然后

int main()
{
  initTime = false;
  // your main code comes here
}

你的可执行文件

大佬总结

以上是大佬教程为你收集整理的在C/C++中是否有任何方法可以检测静态初始化期间代码是否正在运行?全部内容,希望文章能够帮你解决在C/C++中是否有任何方法可以检测静态初始化期间代码是否正在运行?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。