Я хочу иметь несколько экземпляров класса DLLInterface, но, поскольку каждый объект будет иметь указатели на одни и те же функции DLL, я хочу, чтобы они были статическими.
Приведенный ниже код не компилируется.(У меня есть причина для необходимости нескольких экземпляров, содержащих одни и те же указатели, которые не иллюстрирует урезанный код ниже.)
//Header file:
typedef void (*DLLFunction)();
class DLLInterface
{
private:
static HINSTANCE hinstDLL;
public:
static DLLFunction Do;
DLLInterface()
{
if(!hinstDLL || !Do)
{
hinstDLL = LoadLibrary("DoubleThink.dll");
Do = (DLLFunction)GetProcAddress(hinstDLL, "Do");
}
}
};
Мне также нужен весь код, содержащийся в этом заголовочном файле.(Я знаю, что могу заставить его скомпилировать, добавив операторы, подобные следующим, в файл cpp на EXE, но мне нужно избегать этого.
HINSTANCE DLLInterface :: hinstDLL = 0;
Спасибо!