Pregunta

En Windows, el punto de entrada DLL estándar se denomina DllMain. El segundo parámetro es una DWORD, ul_reason_for_call.

He mirado hasta los valores posibles para este segundo parámetro en MSDN. Los siguientes son obvias:

DLL_PROCESS_ATTACH:
DLL_THREAD_ATTACH:
DLL_THREAD_DETACH:
DLL_PROCESS_DETACH:

Pero ¿qué pasa con:

DLL_PROCESS_VERIFIER

¿Cuándo el punto de entrada será llamada con esta bandera? Debería preocuparse de que durante el funcionamiento 'normal' de la DLL?

Tenga en cuenta que sólo veo DLL_PROCESS_VERIFIER en los archivos de cabecera desde Visual Studio 2005, no 2008.

¿Fue útil?

Solución

Creo que, en teoría, Microsoft podría inventar nuevos usos y banderas en cualquier momento que sienten que necesitan una nueva. Así que la regla sencilla es asegurarse de que su código tolera valores inesperados:. Es decir, escribirlo para manejar los casos que usted necesita para manejar e ignorar el resto, devolviendo cero

Otros consejos

Esto es realmente oscura. No es que se haya documentado en el SDK y no aparece en los archivos de cabecera del SDK. Google produce sólo unos pocos golpes, la mayoría de los sitios están inactivos o no confiable. El único éxito decente que se ve es el código XBox, que sólo declara que pero en realidad no lo utilizan.

No soy lo suficientemente convencido de que este es un verdadero código que habías encuentra nunca en un programa normal de Windows.

Creo que puede tener valor si a continuación, se ejecuta a través de comprobador de aplicaciones . Kind de adivinar:)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top