【发布时间】:2011-06-10 09:52:28
【问题描述】:
我想单步调试 C++ 结构的成员并打印出它们的值。我可以很容易地显式编写代码,但是有没有什么方法可以在不知道结构中的内容的情况下做到这一点?
我想我正在寻找与 C# 的 foreach 命令等效的 C++。
感谢您的帮助。
添加:我在 C# 中做这样的事情。此代码从先前读取的 XML 文件中设置结构成员:
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
private struct SettingsStruct
{
public uint nLength;
}
private void UpdateSettings()
{
SettingsStruct settings = new SettingsStruct();
foreach (FieldInfo fieldInfo in typeof(SettingsStruct).GetFields())
{
string settingName = "SETTING." + fieldInfo.Name.ToUpper();
if (appSettings.Contains(settingName))
{
switch (fieldInfo.FieldType.FullName)
{
case "System.UInt32":
fieldInfo.SetValueDirect(__makeref(settings), uint.Parse((string)appSettings[settingName]));
break;
}
}
}
}
【问题讨论】:
-
您的意思是您可以使用
foreach打印C# 结构的成员?怎么样? -
在 C# 中可以使用 foreach 和反射来迭代对象的成员,但它实际上是反射函数,而不是 foreach。