Domanda

In Windows, il punto di ingresso DLL di serie si chiama DllMain. Il secondo parametro è un valore DWORD, ul_reason_for_call.

Ho guardato i valori possibili per questo secondo parametro su MSDN. I seguenti sono evidenti:

DLL_PROCESS_ATTACH:
DLL_THREAD_ATTACH:
DLL_THREAD_DETACH:
DLL_PROCESS_DETACH:

Ma che dire:

DLL_PROCESS_VERIFIER

Quando sarà il punto di ingresso essere chiamato con questo flag? Dovrei preoccuparsi durante il funzionamento 'normale' della DLL?

Si noti che vedo solo DLL_PROCESS_VERIFIER nei file di intestazione da Visual Studio 2005, non il 2008.

È stato utile?

Soluzione

Credo che, in teoria, Microsoft potrebbe inventare nuovi usi e le bandiere ogni volta che sentono il bisogno di una nuova. Quindi la regola semplice è quello di garantire che il codice tollera valori imprevisti:. Cioè scriverlo per gestire i casi di cui avete bisogno per gestire e ignorare il resto, con il ritorno a zero

Altri suggerimenti

Questo è davvero oscuro. Non è mai documentato in l'SDK e non sembra nei file di intestazione SDK. Google produce solo un paio di colpi, la maggior parte dei siti non sono disponibili o non attendibile. L'unico colpo decente che ottengo è il codice XBox, dichiara solo, ma in realtà non lo uso.

Io non sono abbastanza convinto che si tratta di un vero e proprio codice che si sarebbe mai incontrare in un programma regolare di Windows.

penso che possa avere allora il valore se viene eseguito attraverso Application Verifier . Tipo di indovinare:)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top