L'azienda per cui lavoro ha anche un grande progetto VB6 che incontra il limite di identificazione. Ho sviluppato un modo per contare con precisione il numero di identificatori rimanenti, e questo è stato incorporato nel nostro processo di costruzione per questo progetto.
Dopo aver provato diversi strumenti senza esito positivo, mi sono finalmente reso conto che l'IDE VB6 di per sé sa esattamente quanti identificatori è rimasto. In effetti, l'IDE VB6 genera un errore di "memoria insufficiente" quando si aggiunge una variabile oltre il limite.
Approfittando di questo fatto, ho scritto un progetto Add-In VB6 che prima compila il progetto attualmente caricato nell'IDE, quindi aggiunge variabili nominative univoche al progetto finché non genera un errore. Quando viene generato un errore, registra il numero di identificatori aggiunti prima dell'errore come numero di identificatori rimanenti.
Questo numero è archiviato in un file noto al nostro processo di compilazione automatizzato, che legge questo numero e lo segnala al team di sviluppo. Quando scende al di sotto di un valore con cui ci sentiamo a nostro agio, pianifichiamo un po 'di tempo per il refactoring e spostiamo più codice da questo progetto in progetti DLL. Lo stiamo utilizzando in produzione da diversi anni e si è dimostrato un processo affidabile.
Per rispondere direttamente alla domanda, l'utilizzo di un componente aggiuntivo è l'unico modo che conosco per misurare con precisione il numero di identificatori rimanenti. Anche se non posso condividere il codice aggiuntivo del nostro progetto, posso dire che non c'è molto codice in questione, e non ci è voluto molto tempo per svilupparlo.
Microsoft ha una guida decente per come creare un componente aggiuntivo, che può iniziare: https://support.microsoft.com/en-us/kb/189468
Ecco alcuni importanti dettagli specifici di identificatori conteggio:
- Il VB6 IDE non genererà costantemente un errore quando si esce da identificatori fino a quando il progetto caricato corrente non è stato compilato. Il nostro componente aggiuntivo esegue questa operazione prima di aggiungere identificatori per garantire un conteggio accurato. Se il progetto non può essere compilato, non è possibile ottenere un conteggio accurato.
- Ci sono 32.500 identificatori disponibili per un nuovo progetto VB6 vuoto.
- Contano solo i nomi identificativi univoci. Due variabili locali con lo stesso nome in due routine diverse contano solo come un identificatore.
fonte
2015-09-30 17:11:16
Vorrei che questo strumento funzionasse ... Mostra il numero di dichiarazioni variabili (come fa CodeSMART) ma non mostra ancora il numero di identificatori univoci. Se hai tre sottotitoli che contengono tutti la stessa variabile "myvar", allora conta come tre dichiarazioni variabili ma solo un identificatore univoco. L'analizzatore di progetto mostra solo il conteggio delle dichiarazioni ... –