Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Memverifikasi bahwa file database program (.pdb) cocok dengan informasi tanda tangan yang disediakan.
Sintaks
HRESULT ValidatePdb (
LPCOLESTR pdbPath,
const GUID* pcsig70,
DWORD sig,
DWORD age,
BOOL* pfStripped
);
Parameter
pdbPath
[masuk] Jalur ke file .pdb.
pcsig70
[di] Tanda tangan pengidentifikasi unik global (GUID) untuk memverifikasi terhadap tanda tangan file .pdb. Hanya file .pdb di Visual C++ dan yang lebih baru memiliki tanda tangan GUID.
sig
[di] Tanda tangan 32-bit untuk memverifikasi terhadap tanda tangan file .pdb.
age
[di] Nilai usia untuk diverifikasi. Usia tidak selalu sesuai dengan nilai waktu yang diketahui, itu digunakan untuk menentukan apakah file .pdb tidak sinkron dengan file .exe yang sesuai.
pfStripped
[out] Jika PDB cocok dengan informasi lain, parameter ini diatur untuk menunjukkan apakah PDB telah dilucuti dari simbol privat. Ini adalah nilai yang sama seperti yang akan dikembalikan oleh IDiaSymbol::get_isStripped. Jika PDB tidak cocok dengan nilai lain, atau metode ini gagal, parameter ini tidak ditentukan.
Tampilkan Nilai
Jika berhasil, mengembalikan S_OK; jika tidak, mengembalikan kode galat. Tabel berikut memperlihatkan kemungkinan nilai pengembalian untuk metode ini.
| Nilai | Deskripsi |
|---|---|
E_PDB_NOT_FOUND |
Gagal membuka file, atau file memiliki format yang tidak valid. |
E_PDB_FORMAT |
Mencoba mengakses file dengan format tidak terpakai. |
E_PDB_INVALID_SIG |
Tanda tangan tidak cocok. |
E_PDB_INVALID_AGE |
Usia tidak cocok. |
E_INVALIDARG |
Parameter tidak valid. |
E_UNEXPECTED |
Sumber data telah disiapkan. |
Keterangan
File .pdb berisi nilai tanda tangan dan usia. Nilai-nilai ini direplikasi dalam file .exe atau .dll yang cocok dengan file .pdb. Metode ini memverifikasi bahwa tanda tangan dan usia file .pdb bernama cocok dengan nilai yang disediakan tanpa memuat PDB atau menyiapkannya untuk digunakan.
Untuk memuat file .pdb tanpa validasi, gunakan metode .IDiaDataSourceEx::loadDataFromPdbEx
Untuk memuat dan memvalidasi file .pdb terhadap kriteria tertentu, gunakan metode .IDiaDataSourceEx::loadAndValidateDataFromPdbEx
Contoh
IDiaDataSource* pSource; // Previously created data source.
DEFINE_GUID(expectedGUIDSignature,0x1234,0x5678,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08);
DWORD expectedFileSignature = 0x12345678;
DWORD expectedAge = 128;
BOOL fStripped = FALSE;
HRESULT hr;
hr = pSource->lValidatePdb( L"myprog.pdb",
&expectedGUIDSignature,
expectedFileSignature,
expectedAge,
&fStripped);
if (FAILED(hr))
{
// Report an error
}