Le titre est un peu abstrait mais comme je ne suis pas spécialiste des macro je ne suis pas sur de comment procéder.

Je voudrais savoir si il y a un moyen d'écrire une fonction macro prenant un paramettre qui sera utilisé pour générer un nom de macro et définir la valeur d'une autre définition macro.

Quelque chose qui ressemblerait à ça (sauf que ce code ci n'a pas le sens que je veux):


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
#define GENERATE_MODULE_API( module_api_macro_name ) \
	#ifdef module_api_macro_name##_EXPORTS \
		#define module_api_macro_name##_API My_DllExport \
	#else \
		#define module_api_macro_name##_API My_DllImport \
	#endif
Je ne vois pas de façons de le faire.

Ce que j'aimerai faire c'est que chacun de mes projets DLL/SO puisse automatiquement générer une macro MON_MODULE_API qui serait l'équivalent de ceci:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
#ifdef MONPROJET_SYSTEM_EXPORTS
#define MONPROJET_SYSTEM_API My_DllExport
#else
#define MONPROJET_SYSTEM_API My_DllImport
#endif
 
#endif
Actuellement je dois faire un header par projet qui doit contenir ce code ci dessus (avec le nom du projet changé à chaque fois).

Si vous avez une manière de le faire plus générique, je suis preneur.