0

DIA に pdb ファイルのロックを解除させるにはどうすればよいですか?

以下に示すように、pdb をロードしてセッションを作成すると、すべて正常に動作し、セッションを使用して pdb からデータを取得できます。

pdb の使用が終了したら、セッションと DiaSource を解放しますが、DIA はまだ pdb ファイルをロックしているため、アプリが終了するまでエクスプローラーで pdb ファイルを削除できません。pdb ファイルのロックを解除するよう DIA に指示するにはどうすればよいですか?

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();

どうもありがとう。

スチュワート。

4

1 に答える 1

1

少なくとも についてmsdia90.dllは、Release() の後にファイル ハンドルが閉じられていないことは事実です。考えられる回避策は、pdb ファイルをロードするパスの代わりに callloadDataFromIStream()と passIStreamです。ただし、これが実際に機能するかどうかはテストしていません。

于 2013-05-16T16:31:39.760 に答える