3

在 Windows 上,标准 DLL 入口点称为 DllMain。第二个参数是一个 DWORD ul_reason_for_call,.

我在 MSDN 上查找了第二个参数的可能值。以下是显而易见的:

DLL_PROCESS_ATTACH:
DLL_THREAD_ATTACH:
DLL_THREAD_DETACH:
DLL_PROCESS_DETACH:

但是关于:

DLL_PROCESS_VERIFIER

何时使用此标志调用入口点?我应该在 DLL 的“正常”操作期间担心它吗?

请注意,我只DLL_PROCESS_VERIFIER在 Visual Studio 2005 的头文件中看到,而不是 2008。

4

3 回答 3

5

我猜理论上微软可以在他们觉得需要新的任何时候发明新的用法和标志。因此,简单的规则是确保您的代码能够容忍意外的值:即编写它来处理您需要处理的情况,并通过返回零来忽略其余的情况。

于 2010-03-15T17:04:30.147 回答
1

这真是晦涩难懂。它从未记录在SDK中,也不会出现在 SDK 头文件中。谷歌只产生少量点击,大多数网站都关闭或不受信任。我得到的唯一不错的结果是 XBox 代码,它只声明了它,但实际上并没有使用它。

我不太相信这是您在常规 Windows 程序中遇到的真实代码。

于 2010-03-15T17:22:44.007 回答
0

如果通过Application Verifier运行,我认为它可能具有价值。一种猜测:)

于 2010-03-15T17:11:38.010 回答