2010-01-07 15 views
16

Imagine que tengo los archivos de encabezado en un subsistema, pero no acceso al código fuente.Búsqueda de generador de código auxiliar (de archivos de encabezado)

Ahora quiero generar stubs para que coincida con todas las funciones declaradas en los archivos de cabecera (para fines de prueba).

Escribí un código simple para hacer esto, pero no es perfecto. ¿Alguien sabe de algún software disponible libremente que hará esto?


[Actualizar] Cinco años después de hacer la pregunta, esta pregunta sigue recibiendo upvotes.

Se cerró como de tema, lo cual es hoy en día (aunque no fue cuando se publicó originalmente). Afortunadamente, ahora podemos solicitar recomendaciones de software en https://softwarerecs.stackexchange.com/

+1

¿Está intentando vincular a un dll de terceros? Porque si es así, puede generar fácilmente un .lib para vincular y luego puede usar una herramienta para obtener clases/funciones, suponiendo que el dll se compiló con el cambio de nombre de C++. – user230821

+3

¿Y los delfines no tienen ningún problema con esto? (lo siento, no pude pasar por * marsopas *). – Tarydon

+1

+1 También hago pequeños "errores" de nutria ;-) – Mawg

Respuesta

6

Creo que stubgen puede ser lo que buscas.

+0

+1 y la respuesta. Sí, eso es exactamente lo que estaba buscando. ¡Gracias! – Mawg

+0

Eso se veía bien inicialmente (tengo los mismos requisitos) pero se cae al analizar las declaraciones del espacio de nombres. – regomodo

3

Visual Assist X para Visual Studio tiene esta funcionalidad, aunque no está automatizada.

En la función

Tri ProjectTriOnPlane(Tri* a_Triangle); 

Y luego, si se encuentra el .co .cpp correspondiente, vaya a Refactor (VA X) -> Create Implementation, lo que creará una implementación de esta manera:

Tri Camera::ProjectTriOnPlane(Tri* a_Triangle) 
{ 

} 

También doesn Devolver algo estándar, eso es un poco vergonzoso.

+0

lo siento, lo necesito a granel automatizado – Mawg

+0

+1 though.Gracias por tomarse el tiempo para responder. – Mawg

3

Tal vez Lzz hace lo que quiere.

+0

quizás sí. Genera encabezado (y fuente), pero quiero alimentarlo encabezados. Si no se bloquea en los encabezados como entrada, puedo ignorar sus encabezados generados y simplemente usar la fuente generada. Lo intentaré y te responderé. – Mawg

1

Puede escribir un generador de stub con bastante facilidad utilizando Doxygen. No es muy conocido, pero viene con una biblioteca de ayuda que proporciona una muy buena abstracción sobre la salida XML (ver this page).

Si mira al final de this header file, verá que obtiene buenos IStructs, objetos IClass, desde los cuales puede listar ISections y luego IMembers. Todo muy fácil y personalizable a su gusto.

Como dudo que obtenga los trozos exactos que desea de una herramienta genérica, puede que esté mejor si codifica el suyo usando Doxygen, ya que todo el trabajo pesado de sintaxis de C++ correctamente analizado está hecho para usted.

Y si sus patrones de prueba dependen principalmente del tipo de parámetros del método, probablemente pueda generar comprobantes de prueba completos analizando los parámetros del método y generando el código apropiado.

Cuestiones relacionadas