Die Firma für die ich auch arbeiten hat ein großes VB6-Projekt, das die Kennung Grenze gestoßen. Ich habe einen Weg entwickelt, die Anzahl der verbleibenden Identifikatoren genau zu zählen, und dies wurde in unseren Build-Prozess für dieses Projekt integriert.
Nachdem ich mehrere Tools ohne Erfolg ausprobiert hatte, erkannte ich schließlich, dass die VB6 IDE selbst genau weiß, wie viele Kennungen sie noch hat. In der Tat, die VB6-IDE löst einen Fehler "nicht genügend Arbeitsspeicher" aus, wenn Sie eine Variable nach dem Limit hinzufügen.
Aus diesem Grund habe ich ein VB6 Add-In-Projekt geschrieben, das zuerst das aktuell geladene Projekt in der IDE kompiliert und dann dem Projekt Variablen mit eindeutigen Namen hinzufügt, bis ein Fehler ausgegeben wird. Wenn ein Fehler auftritt, wird die Anzahl der vor dem Fehler hinzugefügten IDs als Anzahl der verbleibenden IDs aufgezeichnet.
Diese Nummer wird in einer Datei an einem Speicherort gespeichert, der unserem automatisierten Buildprozess bekannt ist. Dieser liest diese Nummer und meldet sie dem Entwicklungsteam. Wenn es unter einen Wert fällt, mit dem wir uns wohl fühlen, planen wir etwas Refactoring-Zeit und verschieben mehr Code aus diesem Projekt in DLL-Projekte. Wir setzen das seit einigen Jahren in der Produktion ein und haben sich als zuverlässiger Prozess erwiesen.
Um die Frage direkt zu beantworten, ist die Verwendung eines Add-Ins der einzige Weg, um die Anzahl der verbleibenden Identifikatoren genau zu messen. Obwohl ich den Add-In-Code, den unser Projekt verwendet, nicht teilen kann, kann ich sagen, dass nicht viel Code involviert ist und es nicht lange dauerte, ihn zu entwickeln.
Microsoft hat eine gute Anleitung, wie Sie ein Add-In erstellen, die Sie erhalten begonnen: https://support.microsoft.com/en-us/kb/189468
Hier sind einige wichtige Details spezifisch für das Zählen Bezeichner:
- Die VB6 IDE wird nicht fortwährend einen Fehler ausgeben, wenn keine Bezeichner vorhanden sind, bis das aktuell geladene Projekt kompiliert wurde. Unser Add-In tut dies programmatisch, bevor es Kennungen hinzufügt, um eine genaue Anzahl zu garantieren. Wenn das Projekt nicht kompiliert werden kann, kann eine genaue Zählung nicht erhalten werden.
- Für ein neues, leeres VB6-Projekt sind 32.500 Kennungen verfügbar.
- Nur eindeutige Bezeichner zählen. Zwei lokale Variablen mit demselben Namen in zwei verschiedenen Routinen zählen nur als eine Kennung.
Ich wünschte, dass dieses Tool funktioniert ... Es zeigt die Anzahl der Variablen Deklarationen (wie auch CodeSMART), aber es zeigt immer noch nicht die Anzahl der eindeutigen Bezeichner. Wenn Sie drei Subs haben, die alle die gleiche Variable "myvar" enthalten, zählt es als drei Variablendeklarationen, aber nur eine eindeutige Kennung. Project Analyzer zeigt nur die Anzahl der Deklarationen an ... –