这里有一些我认识的可能是可能但我从未设法做过
在VS2005(C++)中,在调试时,能够从我正在调试的代码中调用一个函数.
在调试复杂数据结构时,此功能有时是必不可少的,这些数据结构只能使用监视窗口的常规功能轻松探索.
监视窗口似乎允许编写函数调用,但每次我尝试它时都会给我一个错误或另一个错误.
Error: symbol "func" not found
Error: argument list does not match function
Error: member function not present
有没有人成功地使这项工作正常?我在这里错过了什么?
编辑:显然,调用的函数应该是调试器所在的当前范围中存在的符号.
好的,这就是我发现的
CXX0040意味着" The C expression evaluator does not support implicit conversions involving constructor calls.
"
CXX0047意味着" Overloaded functions can be called only if there is an exact parameter match or a match that does not require the construction of an object.
"
所以组合起来就意味着如果我想调用一个函数,那么任何参数都不应该有隐式转换,并且所有参数都不需要构造.
在这种情况下,"隐式转换"似乎包括转换'String'
为琐碎的事情'const String&'
.
"建筑"似乎包括琐碎的复制结构.所以传递值不是原始类型的任何东西都会导致错误.
所以这基本上留下了只接受基本类型或指针的函数.
我刚刚成功地测试了这个理论.
因此,如果您希望能够从监视窗口调用方法,请添加一个只接受指针和基元的重载,并在监视窗口中相应地传递参数.传递非原始对象传递其地址.