Попробуйте это:
static void Main()
{
var keyValueTypeData = new[] {
new Dictionary<string, string> (){{"Name" , "ITWeiHan" }}
};
keyValueTypeData.SelectMany(x => x.AsEnumerable()).Execute(); //call Execute<TKey, TValue>
var nonKeyValueTypeData = new[] { new { Name = "ITWeiHan" } };
nonKeyValueTypeData.Execute(); //call Execute<T>
}
Обратите внимание на использование SelectMany()
и AsEnumerable()
.
StackWalker Jochen Kalmbach [MVP VC ++] и доступный на codeproject является, вероятно, самым легким способом сделать это. Это оборачивает все детали контакта с базовым StackWalk64 API.
StackWalk64 в библиотеке dbghelp.dll должен сделать то, что Вы ищете.
Это не находится в общедоступном QT API, но если Вы заглядываете
$QTDIR/src/corelib/kernel/qcrashhandler.*
Вы видите начало межплатформенной реализации точно этого.