Parece que a menudo paso demasiado tiempo tratando de obtener una macro #define para hacer exactamente lo que quiero. Voy a publicar mi dilema actual a continuación y cualquier ayuda es apreciada. Pero, realmente, la pregunta más importante es si hay alguna utilidad que alguien pueda recomendar, para mostrar rápidamente qué está haciendo realmente una macro. Parece que incluso el lento proceso de prueba y error iría mucho más rápido si pudiera ver lo que está mal.Cualquier utilidad para probar expandir C/C++ #define macros?
Actualmente, estoy cargando dinámicamente una larga lista de funciones desde una DLL que hice. La forma en que configuré las cosas, los punteros de función tienen los mismos números que las funciones exportadas, y los typedef (s) que se usaron para prototipos tienen los mismos nombres, pero con un guión bajo anexado. Por lo tanto, quiero usar una definición para simplificar las asignaciones de una larga lista de indicadores de función.
Por ejemplo, en la siguiente declaración de código, 'hexdump' es el nombre de un punto de función typedef'd, y también es el nombre de la función, mientras que _hexdump es el nombre de typedef. Si GetProcAddress() falla, un contador de fallas en incrementado.
if (!(hexdump = (_hexdump)GetProcAddress(h, "hexdump"))) --iFail;
Así que digamos que me gustaría reemplazar cada línea como el de arriba con una macro, así ...
GETADDR_FOR(hexdump)
Bueno este es el mejor que he encontrado hasta el momento . No funciona (mi comentario // es sólo para impedir que el formato de texto en el mensaje) ...
// #define GETADDR_FOR(a) if (!(a = (#_#a)GetProcAddress(h, "/""#a"/""))) --iFail;
Y de nuevo, mientras yo le agradecería una idea de lo tonto error que he hecho, se Haría que mi día tuviera una utilidad que me mostraría el error de mis caminos, simplemente conectando mi macro.
lo que el editor es u que utiliza? – Anycorn