// The 'A' at the end means the ANSI (not the UNICODE) versions of the methods
_GetIfTable2 = (GetIfTable2_Fn)::GetProcAddress(_hModule, "GetIfTable2");
_FreeMibTable = (FreeMibTable_Fn)::GetProcAddress(_hModule, "FreeMibTable");
// interlock is used for fencing
InterlockedExchange(&_initialized, 1);
}
bool IphlpDll::IphlpDetach(void) { LONG prev_ref_count = InterlockedExchangeAdd(&_iphlp_reference_count, -1); BOOL ret = false;
if (1 == prev_ref_count) { if (_initialized && _hModule != NULL) {
ret = FreeLibrary(_hModule); if (ret) {
_hModule = NULL;
_GetIfTable2 = NULL;
_FreeMibTable = NULL;
InterlockedExchange(&_initialized, 0);
}
}
} return ret != 0;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.