为什么不能查询变量的定义

程序心声 2013-11-26 02:30:04
大家好,我在用VC做项目的过程中,发现一个奇怪的问题。我有一个.h文件,是专门写各种各种需要的定义和结构体的。类似于:
typedef struct _A
{
...
}A;
typedef struct _B
{
...
}B;
typedef struct _C
{
A tA;
B tB;
...
}C;
但是很奇怪,我在C的结构体的元素中,点击“转到定义”,不论是A或者tA还是B或者tB,都显示“未定义符号”。结构体定义不可能有错啊,我一直这么用的。
我在别的地方包含这个.h文件,定义这些类型的变量,作为参数使用,点击“转到定义”,还是显示“未定义符号”。但是编译都能通过,没有报错。
我不明白,为什么不能“转到定义”,这样很麻烦,我查询起来很不方便。请大家告诉我,是什么原因,是VC的Bug吗,怎么改才能解决问题啊,或者要设置什么。
...全文
211 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
程序心声 2013-12-02
  • 打赏
  • 举报
回复
好的,谢谢大家,看来没有什么直接的办法帮助VC直接修复问题。结贴!
xiaohuh421 2013-11-27
  • 打赏
  • 举报
回复
VS下我经常遇到这样的问题, 已经是见怪不怪了, 有时候,甚至会乱跳到一个不正确的地方. VS不正确, 有时候VAX也不正确. 反正我是两个配合使用, 一个不正确的时候使用另一个.
bedynamic 2013-11-27
  • 打赏
  • 举报
回复
引用 1 楼 Sandrer 的回复:
关闭项目,删除项目下面的 *.ncb 文件然后重启项目
+1
华美乐章 2013-11-27
  • 打赏
  • 举报
回复
这个问题经常遇到。 如果你的代码不是海量的话,可以查找搜索结果,一个个找.
Roton_ 2013-11-27
  • 打赏
  • 举报
回复
编译器有bug
打你屁屁 2013-11-27
  • 打赏
  • 举报
回复
vs2005以上的版本,右上角有和GO按钮,就可以转到定义。
oyljerry 2013-11-27
  • 打赏
  • 举报
回复
引用 9 楼 guoduhua 的回复:
[quote=引用 8 楼 oyljerry 的回复:] 因为编译器有bug,造成没有生成代码的这些索引信息,所以不能跳转 装VA,它可以生成,也有快捷键跳转
你好,谢谢你的回答。只是我有点疑问,对于VC的跳转定义的功能,在你写完代码,还没有编译的时候,就可以实现了,这时候,编译器应该还没有介入啊,不是说,我只有编译之后,才能用跳转定义啊,怎么能是编译器的问题呢。 其二,对于你说的VA,我找了一下,它有很多功能,包括查找引用。但是,我不知道那个按钮是能够直接跳转到定义的位置的。你能告诉我吗,或者可以用图片表示一下,谢谢了。[/quote] 编译器这里可以指VC这个IDE,并不是说编译功能的那部分 VA网上有很多,自己找一下
白衣的逆袭 2013-11-27
  • 打赏
  • 举报
回复
也经常遇到这个问题,不过都莫名其妙的好了
程序心声 2013-11-27
  • 打赏
  • 举报
回复
引用 8 楼 oyljerry 的回复:
因为编译器有bug,造成没有生成代码的这些索引信息,所以不能跳转 装VA,它可以生成,也有快捷键跳转
你好,谢谢你的回答。只是我有点疑问,对于VC的跳转定义的功能,在你写完代码,还没有编译的时候,就可以实现了,这时候,编译器应该还没有介入啊,不是说,我只有编译之后,才能用跳转定义啊,怎么能是编译器的问题呢。 其二,对于你说的VA,我找了一下,它有很多功能,包括查找引用。但是,我不知道那个按钮是能够直接跳转到定义的位置的。你能告诉我吗,或者可以用图片表示一下,谢谢了。
oyljerry 2013-11-27
  • 打赏
  • 举报
回复
引用 7 楼 guoduhua 的回复:
某些回答如下: [quote=引用 2 楼 oyljerry 的回复:] VC有时候有bug,没有生成关系。用VA
VA好像没有一个快捷键能够直接转到定义位置吧。
引用 3 楼 ftd2013 的回复:
vs2005以上的版本,右上角有和GO按钮,就可以转到定义。
它转不到定义,用GO也不行啊!
引用 4 楼 u012800735 的回复:
编译器有bug
这和编译器有Bug有什么关系,我说了,编译没有问题,也不会编译时死机。
引用 5 楼 fengqinqdca 的回复:
这个问题经常遇到。 如果你的代码不是海量的话,可以查找搜索结果,一个个找.
你说的这个是最没办法的办法吧,那我就不用提这问题了。 你编代码经常这么干吗,你知道一搜搜出来是多少,而且,步骤也多啊。 没有可行性。[/quote] 因为编译器有bug,造成没有生成代码的这些索引信息,所以不能跳转 装VA,它可以生成,也有快捷键跳转
程序心声 2013-11-27
  • 打赏
  • 举报
回复
某些回答如下:
引用 2 楼 oyljerry 的回复:
VC有时候有bug,没有生成关系。用VA
VA好像没有一个快捷键能够直接转到定义位置吧。
引用 3 楼 ftd2013 的回复:
vs2005以上的版本,右上角有和GO按钮,就可以转到定义。
它转不到定义,用GO也不行啊!
引用 4 楼 u012800735 的回复:
编译器有bug
这和编译器有Bug有什么关系,我说了,编译没有问题,也不会编译时死机。
引用 5 楼 fengqinqdca 的回复:
这个问题经常遇到。 如果你的代码不是海量的话,可以查找搜索结果,一个个找.
你说的这个是最没办法的办法吧,那我就不用提这问题了。 你编代码经常这么干吗,你知道一搜搜出来是多少,而且,步骤也多啊。 没有可行性。
oyljerry 2013-11-26
  • 打赏
  • 举报
回复
VC有时候有bug,没有生成关系。用VA
Sandrer 2013-11-26
  • 打赏
  • 举报
回复
关闭项目,删除项目下面的 *.ncb 文件然后重启项目

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧