Công ty tôi làm việc cho cũng có một dự án VB6 lớn mà gặp phải những hạn định. Tôi đã phát triển một cách để đếm chính xác số lượng số nhận dạng còn lại và điều này đã được đưa vào quy trình xây dựng của chúng tôi cho dự án này.
Sau khi thử một số công cụ không thành công, cuối cùng tôi đã nhận ra rằng bản thân IDE VB6 biết chính xác có bao nhiêu số nhận dạng mà nó còn lại. Trong thực tế, IDE VB6 ném một lỗi "hết bộ nhớ" khi bạn thêm một biến vượt quá giới hạn của nó.
Lợi dụng thực tế này, tôi đã viết dự án Add-In VB6 đầu tiên biên dịch dự án hiện đang được nạp trong IDE, sau đó thêm các biến được đặt tên duy nhất cho dự án cho đến khi nó phát ra lỗi. Khi một lỗi được nâng lên, nó ghi lại số lượng số nhận dạng được thêm vào trước lỗi khi số lượng số nhận dạng còn lại.
Số này được lưu trữ trong tệp ở vị trí được biết đến quy trình xây dựng tự động của chúng tôi, sau đó đọc số này và báo cáo cho nhóm phát triển. Khi nó được dưới một giá trị chúng tôi cảm thấy thoải mái với, chúng tôi lên lịch một số thời gian tái cấu trúc và di chuyển nhiều mã ra khỏi dự án này vào các dự án DLL. Chúng tôi đã sử dụng điều này trong sản xuất trong nhiều năm nay, và đã được chứng minh là một quá trình đáng tin cậy.
Để trả lời trực tiếp câu hỏi, sử dụng Bổ trợ là cách duy nhất tôi biết để đo chính xác số lượng số nhận dạng còn lại. Mặc dù tôi không thể chia sẻ mã Add-In mà dự án của chúng tôi đang sử dụng, tôi có thể nói rằng không có nhiều mã liên quan và không mất nhiều thời gian để phát triển.
Microsoft có hướng dẫn đàng hoàng để biết cách tạo một add-in, có thể giúp bạn bắt đầu: https://support.microsoft.com/en-us/kb/189468
Dưới đây là một số chi tiết quan trọng cụ thể để định danh tính:
- Các VB6 IDE sẽ không nhất quán ném lỗi khi ra khỏi số nhận dạng cho đến khi dự án được tải hiện tại đã được biên dịch. Add-In của chúng tôi lập trình thực hiện điều này trước khi thêm số nhận dạng để đảm bảo tính chính xác. Nếu dự án không thể được biên dịch, thì không thể thu được số đếm chính xác.
- Có 32.500 số nhận dạng có sẵn cho dự án VB6 mới, trống.
- Chỉ có tên số nhận dạng duy nhất được tính. Hai biến cục bộ có cùng tên trong hai thường trình khác nhau chỉ được tính là một định danh.
Nguồn
2015-09-30 17:11:16
Tôi muốn công cụ này hoạt động ... Nó hiển thị số lượng khai báo biến (cũng như CodeSMART) nhưng nó vẫn không hiển thị số lượng mã định danh duy nhất. Nếu bạn có ba subs mà tất cả chứa cùng một biến "myvar", sau đó nó được tính là ba khai báo biến nhưng chỉ một định danh duy nhất. Trình phân tích dự án chỉ hiển thị số lượng các khai báo ... –