Mik*_*and 5 windows dll winapi
在DllMain Entry Point 文档中,作者做了以下评论:
要提供更复杂的初始化,请为 DLL 创建初始化例程。您可以要求应用程序在调用 DLL 中的任何其他例程之前调用初始化例程。
在 C/C++ 中,如何创建不同的例程并要求应用程序在调用其他例程之前调用它?
Mar*_*ins 3
初始化例程可以是任何导出函数。诀窍是“要求其他应用程序调用它”。为了强制执行它,您需要检查它是否已在几乎所有其他导出函数中被调用。如果每个导出函数都有一些公共前缀代码,那么这将是检查初始化函数是否已被调用的好地方。
但是,如果您必须检查它是否已在每个入口点中被调用,那么如果您实际上在尚未调用该函数时自动调用该函数,那么对于 DLL 的使用者来说可能会更容易。这确实需要一些额外的工作来使其最有可能是线程安全的。您需要一个关键部分(或互斥体、信号量等)来确保它只被调用一次。
归档时间:
14 年,9 月 前
查看次数:
5533 次
最近记录: