Как сделать DIA освободить свою блокировку в файле pdb?Как я могу сделать DIA для его блокировки в файле pdb?
Я загружаю pdb и создаю сеанс, как показано ниже, и все работает отлично, я могу использовать сеанс для получения данных из pdb.
Когда я закончил с pdb, я освобожу сессию и DiaSource, но DIA все еще имеет блокировку в файле pdb, я не могу удалить файл pdb в проводнике, пока мое приложение не выйдет. Как сообщить DIA о блокировке файла pdb?
CoCreateInstance(__uuidof(DiaSource),
NULL,
CLSCTX_INPROC_SERVER,
__uuidof(IDiaDataSource),
(void**)&mp_DiaSource);
mp_DiaSource->loadAndValidateDataFromPdb(
(LPCOLESTR)p_wide_filename, &m_Sig, 0, m_Age);
mp_DiaSource->openSession(&mp_Session);
// do stuff with mp_Session here
mp_Session->Release();
mp_DiaSource->Release();
большое спасибо.
Стюарт.
Да, вы правы. Использование 'IStream' помогает избежать блокировки файла pdb. Я использовал этот код для себя: 'IStream * pdbFileStream; SHCreateStreamOnFileEx ("filename", STGM_FAILIFTHERE, GENERIC_READ, false, nullptr, & pdbFileStream); ' –