本文整理汇总了C++中CLR_RT_HeapBlock_Array::ReflectionData方法的典型用法代码示例。如果您正苦于以下问题:C++ CLR_RT_HeapBlock_Array::ReflectionData方法的具体用法?C++ CLR_RT_HeapBlock_Array::ReflectionData怎么用?C++ CLR_RT_HeapBlock_Array::ReflectionData使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CLR_RT_HeapBlock_Array
的用法示例。
在下文中一共展示了CLR_RT_HeapBlock_Array::ReflectionData方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OBJECT
void CLR_RT_DUMP::OBJECT( CLR_RT_HeapBlock* ptr, LPCSTR text )
{
NATIVE_PROFILE_CLR_DIAGNOSTICS();
#define PELEMENT_TO_STRING(elem) case DATATYPE_##elem: CLR_Debug::Printf( "%s", #elem ); break
CLR_Debug::Printf( "%s - ", text );
while(ptr->DataType() == DATATYPE_OBJECT && ptr->Dereference())
{
ptr = ptr->Dereference();
CLR_Debug::Printf( "PTR " );
}
CLR_Debug::Printf( "%04x blocks at %08x [%02x] ", ptr->DataSize(), (int)(size_t)ptr, ptr->DataType() );
switch(ptr->DataType())
{
case DATATYPE_CLASS:
case DATATYPE_VALUETYPE:
{
CLR_RT_DUMP::TYPE( ptr->ObjectCls() );
}
break;
case DATATYPE_STRING:
{
CLR_Debug::Printf( "'%s'", ptr->StringText() );
}
break;
case DATATYPE_SZARRAY:
{
CLR_RT_HeapBlock_Array* array = (CLR_RT_HeapBlock_Array*)ptr;
CLR_RT_DUMP::TYPE( array->ReflectionData() );
}
break;
case DATATYPE_DELEGATE_HEAD:
{
CLR_RT_HeapBlock_Delegate* dlg = (CLR_RT_HeapBlock_Delegate*)ptr;
CLR_RT_DUMP::METHOD( dlg->DelegateFtn() );
}
break;
PELEMENT_TO_STRING(BOOLEAN);
PELEMENT_TO_STRING(CHAR );
PELEMENT_TO_STRING(I1 );
PELEMENT_TO_STRING(U1 );
PELEMENT_TO_STRING(I2 );
PELEMENT_TO_STRING(U2 );
PELEMENT_TO_STRING(I4 );
PELEMENT_TO_STRING(U4 );
PELEMENT_TO_STRING(I8 );
PELEMENT_TO_STRING(U8 );
PELEMENT_TO_STRING(R4 );
PELEMENT_TO_STRING(R8 );
PELEMENT_TO_STRING(FREEBLOCK );
PELEMENT_TO_STRING(CACHEDBLOCK );
PELEMENT_TO_STRING(ASSEMBLY );
PELEMENT_TO_STRING(WEAKCLASS );
PELEMENT_TO_STRING(REFLECTION );
PELEMENT_TO_STRING(ARRAY_BYREF );
PELEMENT_TO_STRING(DELEGATELIST_HEAD );
PELEMENT_TO_STRING(OBJECT_TO_EVENT );
PELEMENT_TO_STRING(BINARY_BLOB_HEAD );
PELEMENT_TO_STRING(THREAD );
PELEMENT_TO_STRING(SUBTHREAD );
PELEMENT_TO_STRING(STACK_FRAME );
PELEMENT_TO_STRING(TIMER_HEAD );
PELEMENT_TO_STRING(LOCK_HEAD );
PELEMENT_TO_STRING(LOCK_OWNER_HEAD );
PELEMENT_TO_STRING(LOCK_REQUEST_HEAD );
PELEMENT_TO_STRING(WAIT_FOR_OBJECT_HEAD );
PELEMENT_TO_STRING(FINALIZER_HEAD );
PELEMENT_TO_STRING(MEMORY_STREAM_HEAD );
PELEMENT_TO_STRING(MEMORY_STREAM_DATA );
}
CLR_Debug::Printf( "\r\n" );
#undef PELEMENT_TO_STRING
}