Tôi có một dự án C++ trong VS2010 với Qt 4.7.4 và tôi thường gặp vấn đề với IntelliSense (như tất cả chúng ta đều làm ...). Một vấn đề cụ thể là đôi khi không thể tìm thấy phần thân hàm (trong tệp .cpp). Nếu tôi nhấp vào nội dung hàm đó, hộp thả xuống (thường hiển thị hàm bạn đang ở) trống.Tại sao có thể phá vỡ vi phạm VS2010 của Q_FOREACH?
Hôm nay tôi nhận thấy hành vi này ngay sau khi tôi thêm câu lệnh foreach()
(Qt macro Q_FOREACH). Sau đó, tôi thay thế macro foreach() bằng một số tương ứng for(int i = 0; i < ...)
và IntelliSense ngay lập tức hiển thị lại chức năng.
Vì vậy, tôi muốn biết:
- ai đó có thể vui lòng xác minh hành vi này và cho tôi biết như vậy trong một bình luận?
- Tại sao điều này xảy ra?
- Có cách giải quyết nào cho phép tôi tiếp tục sử dụng Q_FOREACH không?
tôi không thể xác minh nó như tôi chỉ có Năm 2008 và Intellisense bị choáng ngợp bởi dự án khá lớn của chúng tôi vì nó có rất nhiều vấn đề khó mà làm cho nó hoạt động được chút nào. Nhưng đây là những gì tôi đang làm: Tôi * phát triển * trong Qt Creator và * biên dịch và gỡ lỗi * trong Visual Studio. Điều này xuất hiện như là sự kết hợp tốt nhất của hai thế giới đối với tôi. Rõ ràng bạn cần quản lý các dự án trong '.pro' tập tin và chuyển đổi chúng bằng cách sử dụng 'qmake -tp vc -recursive .pro' hoặc một studio trực quan thêm vào –
những gì sẽ xảy ra khi bạn thay thế' foreach() 'bởi' Q_FOREACH' và chỉ định 'CONFIG + = no_keywords' ?? – UmNyobe
@UmNyobe Tôi đã thử thay thế 'foreach()' bằng 'Q_FOREACH' mà không có hiệu lực. Tôi sợ tôi không biết cách thêm 'no_keywords', bởi vì trong VS2010 không có tệp' .pro'. Bạn có biết đó là trường tương ứng trong các trang thuộc tính của dự án không? Tuy nhiên, 'no_keywords' có nghĩa là tôi phải thay thế tất cả' signal' bằng 'Q_SIGNAL' - đây là cách cồng kềnh hơn viết lại tất cả foreachs(). –