Jim*_*ell 8 c++ visual-studio-2008
我在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
Run Code Online (Sandbox Code Playgroud)
在源文件中,这些定义的结构如下使用:
void MyFunc( void )
{
myStruct_t * myStruct = NULL;
myStruct = (myStruct_t *)malloc( sizeof(myStruct_t) );
/* and so forth and so on... */
}
Run Code Online (Sandbox Code Playgroud)
即使它成功编译0错误和0警告,有时当我右键单击自定义数据类型(如in MyFunc)时,它给我一个错误:
未定义符号'myStruct_t'.
然后单击"确定"关闭对话框并按Ctrl+ Alt+ F7重建解决方案.它构建时没有任何错误或警告,因此我知道它正在找到myStruct_t编译时的定义,但是当我尝试使用Go to Definition功能时它无法找到它.我唯一想到的是这个应用程序有很多定义的结构,单字节对齐,但这不应该有所作为.有人知道如何解决这个问题吗?
Pep*_*epe 10
尝试关闭解决方案,然后删除*.sdf文件.当您重新打开解决方案时,Intellisense将被迫重建其数据库,这可能会解决您的问题.
编辑:修正了错误指向
编辑2:对于旧版,如果您使用的是Visual Studio 2008或更早版本,则应删除所有*.ncb文件.