Je suis entrain de faire du portage et dans toutes mes bibliotheques différentes, je suis toujours entrain de rajouter un .h avec comme code celui ci :
#ifdef _MSC_VER
#if defined TARGET_EXPORTS
#define TAGET_API __declspec( dllexport )
#else
#define TARGET_API __declspec( dllimport )
#endif // _LIB
Donc je demandais comment faire un macro avec le code dedans
Genre
#define MACRO_EXPORT (target) \ ...
Mais je me doute que le saut de ligne, ca ne va pas le faire et je doute que
sur une meme ligne ca fasse le café...
#if defined TARGET_EXPORTS #define TAGET_API __declspec( dllexport ) #else #define TARGET_API __declspec( dllimport
Donc si qq a une idée...
Merci
# Backslash
Posté par FX Pasquier . Évalué à 1.
mais sache que tu peux définir une macro sur plusieurs lignes avec \ (backslash), genre :
#define MACRO_EXPORT (target) \
#ifdef _MSC_VER \
#if defined TARGET_EXPORTS \
#define TAGET_API __declspec( dllexport ) \
#else \
#define TARGET_API __declspec( dllimport ) \
#endif // _LIB
Après ce que ça t'apporte, je vois pas bien.
[^] # Re: Backslash
Posté par xabi . Évalué à 1.
# Utiliser TARGET_API
Posté par Étienne . Évalué à 1.
#ifdef _MSC_VER
#if defined TARGET_EXPORTS
#define TARGET_API __declspec( dllexport )
#else
#define TARGET_API __declspec( dllimport )
#endif // _LIB
#else
#define TARGET_API
#endif
Après tu n'a pas d'autre code à modifier puisque je suppose que toutes tes fonction utilisent TARGET_API.
Étienne
[^] # Re: Utiliser TARGET_API
Posté par xabi . Évalué à 1.
toto.h
#ifdef _MSC_VER
#if defined OMK_GVTPlugin_##NAME##_EXPORTS
#define OMKGVT_##NAME##_API __declspec( dllexport )
#else
#define OMKGVT_##NAME##_API __declspec( dllimport )
#endif // _LIB
#pragma warning(disable : 4251)
#pragma warning(disable : 4275)
#else
#define OMKGVT_##NAME##_API
#endif
truc.h
#define NAME NAV
#include "toto.h"
#undef NAME
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.