本文整理汇总了C++中Mangler::MangleType方法的典型用法代码示例。如果您正苦于以下问题:C++ Mangler::MangleType方法的具体用法?C++ Mangler::MangleType怎么用?C++ Mangler::MangleType使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Mangler
的用法示例。
在下文中一共展示了Mangler::MangleType方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
//.........这里部分代码省略.........
++it2;
}
}
*/
TypeArchive* ar = new TypeArchive(TypeArchive::Mode_Load, new FileByteStream(new StringA("C:/test.typeinfo"), FileMode_Read));
int ntypes;
*ar >> ntypes;
printf("%d\n", ntypes);
for (int i = 0; i < ntypes; i++)
{
NamedType* pType;
*ar >> pType;
BufferImp<char> buffer;
StringBuilderA strbuilder(&buffer);
pType->Write(strbuilder);
pType->m_qname = buffer.DetachToString();
if (*pType->m_qname == "second_argument_type")
{
MessageBeep(-1);
}
//if (pType->m_qname)
{
StringBuilderA strbuilder(&buffer);
strbuilder << "__ZTI"; // type info
Mangler mangler;
mangler.MangleType(pType, strbuilder);
StringA* name = buffer.DetachToString();
gsymmap_t::iterator it2 = linker.m_globsyms.find(name);
//map<StringA*, DWORD, Ref_Less<StringA> >::iterator it2 = symbols.find(name);
if (it2 != linker.m_globsyms.end())
{
GlobalSymbol* globsym = (*it2).second;
//TRACE("%s\n", name->c_str());
if (!strcmp(globsym->m_name->c_str(), "__ZTI9IAddChild"))
{
MessageBeep(-1);
}
for (int j = 0; j < globsym->m_syms.size(); j++)
{
Symbol* sym = globsym->m_syms[j];
}
#if AMIGA
__type_info2* ti = (__type_info2*)sym->ResolvedValue;
printf("%s\n", ti->__type_name);
// int len = strlen(ti->__type_name);
/*
char* newname = malloc(len+1+4);
strcpy(newname+4, ti->__type_name);
ti->__type_name = newname+4;