Mon scénario est le suivant (cela a fonctionné en clang mais pas en gcc)
liba.hpp:
inline int MY_GLOBAL = 0;
libother.cpp: (dll)
#include "myliba.hpp"
void myFunc() {
//
MYGLOBAL = 28;
}
someexe.cpp:
RunAppThatUsesBothLibAandLibOther();
Le problème est que la variable en ligne affichait 0 aux endroits où je m'attendais à 28 car elle a déjà été modifiée au moment de l'exécution. MSVC n'est pas d'accord avec cela, mais clang fait la chose à laquelle je m'attendais.
La question est: les variables en ligne peuvent-elles être modifiées au moment de l'exécution dans mon scénario? (J'ai résolu le problème en supprimant la variable.)
inline
variables. Vous devez également vous assurer qu'ils ont été exportés à partir d'une DLL et importés de là à tous les autres endroits.