Как заставить 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();
большое спасибо.
Стюарт.
1 ответ
По крайней мере для msdia90.dll
это правда, что дескриптор файла не закрывается после Release(), возможный обходной путь, вызов loadDataFromIStream()
и передать IStream
однако вместо пути загрузки файла pdb я никогда не проверяю, действительно ли это работает.