DLL/주 프로그램에서 전역 함수에 액세스하는 데 도움이 필요합니다. 나는 수업 자료 (MAIN_DLL 여기에 미리 정의되어)DLL에서 정적 클래스 변수/함수 사용
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 (기본 응용 프로그램)가
Filesystem * Base::filesystem = 0;
Logger * Base::logger = 0;
System * Base::system = 0;
나는 DLL에서 액세스 :
System * system = Base::sys();
if(system == 0) std::cout << "Error";
감사합니다. Gasim
이것은 관심의 대상이 될 수 있습니다 : 가 http://stackoverflow.com/questions/4911994/sharing-a-global-static-variable-between-a-process-and-dll – marcinj