在执行任何程序代码之前,通过静态.lib链接到dll的程序会发生什么?

时间:2017-01-31 21:29:34

标签: c++ dll vc6

这是一个复杂的情况。 exe程序加载会在执行任何程序或DLL代码之前大约10分钟延迟。程序和DLL都是内部编写的。使用早期版本的DLL似乎可以缓解这个问题。我想要确定的是在编译器生成的代码中将dll附加到程序中会发生什么,以及如何在加载程序时导致延迟几分钟。程序和DLL都是使用VC ++ 6.0生成的。这在大约1年前的dll修订之后开始发生,但是修订与任何dll初始化/启动代码无关。这不会在所有计算机上发生,也不会影响在任何给定计算机上使用dll的所有程序。失败似乎没有任何模式。

1 个答案:

答案 0 :(得分:0)

"编译器生成的代码将dll附加到程序中会发生什么?"

几乎没有。编译器生成的代码存在于DLL中,而不是EXE中。它有三个基本任务:确保加载C ++运行时,调用全局对象的构造函数,以及调用DllMain。请注意,生成的代码的最后两部分只是调用您的代码;生成的代码本身以纳秒为单位执行。