Мне нужна помощь в доступе к глобальным функциям в DLL/основной программе. У меня есть базовый классиспользовать переменную статическую переменную/функцию через dlls
Base.h
#ifdef MAIN_DLL
#define DECLSPEC __declspec(dllexport)
#else
#define DECLSPEC __declspec(dllimport)
#endif
class Base {
private:
DECLSPEC static Filesystem * filesystem;
DECLSPEC static Logger * logger;
DECLSPEC static System * system;
public:
static void setFilesystem(Filesystem * filesystem_);
static void setApplication(Application * application_);
static void setLogger(Logger * logger_);
static void setSystem(System * system_);
static Filesystem * fs() { return filesystem; }
static Logger * log() { return logger; }
static System * sys() { return system; }
};
main.cpp (основное применение) (MAIN_DLL предопределен здесь)
Filesystem * Base::filesystem = 0;
Logger * Base::logger = 0;
System * Base::system = 0;
Когда доступ из библиотеки DLL:
System * system = Base::sys();
if(system == 0) std::cout << "Error";
Thanks, Gasim
Это может быть интересно для вас: http://stackoverflow.com/questions/4911994/sharing-a-global-static-variable-between-a-process-and-dll – marcinj