IDebugHostType2::Metode IsTypedef (dbgmodel.h)
Metode IsTypedef adalah satu-satunya metode yang mampu melihat apakah jenis adalah typedef. Metode GetTypeKind akan berpura-pura seolah-olah dipanggil pada jenis yang mendasar.
Sintaks
HRESULT IsTypedef(
bool *isTypedef
);
Parameter
isTypedef
Akan mengembalikan true jika simbol jenis adalah typedef dan false jika tidak.
Nilai kembali
Metode ini mengembalikan HRESULT.
Keterangan
Kode Sampel
ComPtr<IDebugHostType> spType; /* get a type for a typedef (only FindTypeByName
since the compiler usually only emits base types
in the symbols for data) */
ComPtr<IDebugHostType2> spType2;
if (SUCCEEDED(spType.As(&spType2)))
{
bool isTypeDef;
if (SUCCEEDED(spType2->IsTypedef(&isTypeDef)))
{
// isTypeDef indicates whether the type is a typedef.
}
}
Jenis apa pun yang merupakan typedef akan bersifat seolah-olah jenisnya adalah jenis akhir yang mendasar typedef. Ini berarti bahwa metode seperti GetTypeKind tidak akan menunjukkan bahwa jenisnya adalah typedef. Demikian juga, GetBaseType tidak akan mengembalikan jenis yang dirujuk oleh definisi. Mereka sebaliknya akan menunjukkan perilaku seolah-olah mereka dipanggil pada definisi akhir yang mendasar typedef. Sebagai contoh:
typedef MYSTRUCT *PMYSTRUCT;
typedef PMYSTRUCT PTRMYSTRUCT;
IDebugHostType untuk 'PMYSTRUCT atau PTRMYSTRUCT akan melaporkan informasi berikut:
Metode GetTypeKind akan mengembalikan TypePointer. Jenis akhir yang mendasar MYSTRUCT * memang penunjuk.
Metode 'GetBaseType akan mengembalikan jenis untuk MYSTRUCT. Jenis MYSTRUCT * yang mendasar adalah MYSTRUCT.
Satu-satunya perbedaan di sini adalah bagaimana metode khusus typedef pada IDebugHostType2 bertingkah laku. Metode tersebut adalah:
STDMETHOD(IsTypedef)(_Out_ bool* isTypedef) PURE;
STDMETHOD(GetTypedefBaseType)(_Out_ IDebugHostType2** baseType) PURE;
STDMETHOD(GetTypedefFinalBaseType)(_Out_ IDebugHostType2** finalBaseType) PURE;
Dalam contoh ini:
- Metode IsTypedef akan mengembalikan true untuk PMYSTRUCT dan PTRMYSTRUCT
- Metode GetTypedefBaseType akan mengembalikan MYSTRUCT * untuk PMYSTRUCT dan PMYSTRUCT untuk PTRMYSTRUCT
- Metode GetTypedefFinalBaseType akan mengembalikan MYSTRUCT * untuk kedua jenis
Persyaratan
Persyaratan | Nilai |
---|---|
Header | dbgmodel.h |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk