Tôi đang viết một ứng dụng C++ trong Visual Studio 2008. Nó có rất nhiều công trình quy định tại một số tập tin tiêu đề, chẳng hạn như:Tới Definition Thất bại - Visual Studio 2008
#pragma pack(push , 1) // align on a 1-byte boundary
typedef struct myStruct_tag
{
/* ... */
} myStruct_t;
#pragma pack(pop) // end 1-byte boundary alignment
Trong một tập tin nguồn, những cấu trúc định nghĩa được sử dụng như vậy:
void MyFunc(void)
{
myStruct_t * myStruct = NULL;
myStruct = (myStruct_t *)malloc(sizeof(myStruct_t));
/* and so forth and so on... */
}
Mặc dù nó biên dịch thành công với 0 lỗi và 0 cảnh báo, thỉnh thoảng khi tôi kích chuột phải vào một kiểu dữ liệu tùy chỉnh (chẳng hạn như trong MyFunc
) nó mang lại cho tôi một lỗi:
The symbol 'myStruct_t' is not defined.
Sau đó, tôi bấm OK để đóng hộp thoại và nhấn Ctrl + Alt + F7 để xây dựng lại các giải pháp. Nó xây dựng mà không có bất kỳ lỗi hoặc cảnh báo, vì vậy tôi biết rằng nó là tìm định nghĩa của myStruct_t
khi nó biên dịch, nhưng nó không thể tìm thấy nó khi tôi cố gắng sử dụng Đi đến định nghĩa tính năng. Điều duy nhất xảy ra với tôi là ứng dụng này có rất nhiều cấu trúc được xác định, liên kết đơn byte, nhưng điều đó không tạo nên sự khác biệt. Có ai biết cách sửa lỗi này không?
Điều này đã làm được điều này! Cảm ơn! –
Trong Visual Studio 2010 không có tệp * .ncb; nó hiện đang sử dụng tệp * .sdf – Loghorn
Lỗi của tôi. Tôi đang sử dụng VS2008. Tôi sẽ cập nhật OP cho phù hợp. –