La empresa donde trabajo también tiene un proyecto de VB6 grande que se encontró con el límite de identificador. Desarrollé una forma de contar con precisión la cantidad de identificadores restantes, y esto se ha incorporado a nuestro proceso de compilación para este proyecto.
Después de probar varias herramientas sin éxito, finalmente me di cuenta de que el VB6 IDE mismo sabe exactamente cuántos identificadores le quedan. De hecho, el IDE VB6 arroja un error de "falta de memoria" cuando agrega una variable más allá de su límite.
Aprovechando este hecho, escribí un proyecto de complemento VB6 que primero compila el proyecto cargado actualmente en el IDE, luego agrega variables con nombre único al proyecto hasta que arroja un error. Cuando se produce un error, registra el número de identificadores agregados antes del error como el número de identificadores restantes.
Este número se almacena en un archivo en una ubicación conocida por nuestro proceso de compilación automatizado, que luego lee este número y lo informa al equipo de desarrollo. Cuando se encuentra por debajo de un valor con el que nos sentimos cómodos, programamos un poco de tiempo de refactorización y sacamos más código de este proyecto a proyectos DLL. Hemos estado usando esto en producción desde hace varios años y hemos demostrado que es un proceso confiable.
Para responder directamente a la pregunta, usar un complemento es la única forma que conozco para medir con precisión el número de identificadores restantes. Aunque no puedo compartir el código de complemento que está usando nuestro proyecto, puedo decir que no hay mucho código involucrado, y no tardó mucho en desarrollarse.
Microsoft tiene una guía decente para cómo crear un complemento, que puede empezar: https://support.microsoft.com/en-us/kb/189468
Éstos son algunos detalles importantes específicos a los identificadores de conteo:
- El IDE de VB6 no arrojará sistemáticamente un error cuando esté fuera de los identificadores hasta que se haya compilado el proyecto cargado actual. Nuestro complemento programáticamente hace esto antes de agregar identificadores para garantizar un conteo preciso. Si el proyecto no se puede compilar, no se puede obtener un conteo preciso.
- Hay 32.500 identificadores disponibles para un nuevo proyecto VB6 vacío.
- Solo los nombres únicos de identificadores cuentan. Dos variables locales con el mismo nombre en dos rutinas diferentes solo cuentan como un identificador.
Deseo que esta herramienta funcione ... Muestra el número de declaraciones de variables (como lo hace CodeSMART) pero aún no muestra el número de identificadores únicos. Si tiene tres subs que contienen la misma variable "myvar", entonces cuenta como tres declaraciones de variables pero solo un identificador único. El analizador de proyectos solo muestra el recuento de declaraciones ... –