Wann wird DLLMain mit der DLL_PROCESS_VERIFIER Flagge genannt werden?
Frage
Unter Windows der Standard-DLL-Einstiegspunkt DllMain aufgerufen. Der zweite Parameter ist ein DWORD, ul_reason_for_call
.
Ich habe die möglichen Werte für diesen zweiten Parameter auf MSDN nachgeschlagen. Im Folgenden sind offensichtlich:
DLL_PROCESS_ATTACH:
DLL_THREAD_ATTACH:
DLL_THREAD_DETACH:
DLL_PROCESS_DETACH:
Aber was ist:
DLL_PROCESS_VERIFIER
Wann wird der Eintrittspunkt mit dieser Flagge genannt werden? Muss ich mir Sorgen darüber bei ‚normalen‘ Betrieb der DLL?
Beachten Sie, dass ich nur DLL_PROCESS_VERIFIER
in Header-Dateien von Visual Studio 2005, nicht 2008 sehen.
Lösung
Ich denke, in der Theorie Microsoft könnte neue Nutzungen und Fahnen erfinden jederzeit sie fühlen sie sich einen neuen brauchen. So ist die einfache Regel, um sicherzustellen, dass Ihr Code unerwartete Werte duldet: d. H schreibt es die Fälle zu behandeln, dass Sie den Rest behandeln und ignorieren müssen, durch Null zurückzukehr
Andere Tipps
Das ist wirklich dunkel. Es ist nicht immer dokumentiert in SDK und erscheint nicht in den SDK-Header-Dateien. Google produziert nur ein paar Hits, die meisten Websites sind oder nicht vertrauenswürdige. Der einzige anständige Hit ich erhalte, ist XBox Code, erklärt sie es nur, aber nicht wirklich verwenden.
bin ich nicht in ausreichendem Maße davon überzeugt, dass dies ein echter Code ist, dass Sie jemals in einem normalen Windows-Programm auftreten würden.
ich denke, es dann Wert haben kann, wenn es ausgeführt wird durch Application Verifier . Art zu raten:)