gpt4 book ai didi

c++ - 转到定义失败 - Visual Studio 2008

转载 作者:可可西里 更新时间:2023-11-01 17:38:32 26 4
gpt4 key购买 nike

我在 Visual Studio 2008 中编写一个 C++ 应用程序。它在几个头文件中有很多定义的结构,例如:

#pragma pack( push , 1 )                // align on a 1-byte boundary

typedef struct myStruct_tag
{
/* ... */
} myStruct_t;

#pragma pack( pop ) // end 1-byte boundary alignment

在源文件中,这些定义的结构是这样使用的:

void MyFunc( void )
{
myStruct_t * myStruct = NULL;

myStruct = (myStruct_t *)malloc( sizeof(myStruct_t) );

/* and so forth and so on... */
}

即使它成功编译并出现 0 个错误和 0 个警告,但有时当我右键单击自定义数据类型时(例如在 MyFunc 中)它会给我一个错误:

The symbol 'myStruct_t' is not defined.

然后单击“确定”关闭对话框,然后按 Ctrl+Alt+F7 重建解决方案。它构建时没有任何错误或警告,所以我知道它在编译时找到了 myStruct_t 的定义,但是当我尝试使用 Go to Definition 功能。我唯一想到的是这个应用程序有很多定义的结构,单字节对齐,但这应该没有什么区别。有人知道如何解决这个问题吗?

最佳答案

尝试关闭您的解决方案,然后删除 *.sdf 文件。当您重新打开解决方案时,Intellisense 将被迫重建其数据库,这可能会解决您的问题。

编辑:修复错误指出

编辑 2:对于旧版本,如果您使用的是 Visual Studio 2008 或更早版本,则应删除所有 *.ncb 文件。

关于c++ - 转到定义失败 - Visual Studio 2008,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4935281/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com