Как заставить 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 я никогда не проверяю, действительно ли это работает.

Другие вопросы по тегам