我想要一个 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");
}
}
};
我还需要在这个头文件中包含所有代码。(我知道我可以通过在 EXE 上的 cpp 文件中添加如下语句来编译它,但我需要避免这样做。
HINSTANCE DLLInterface::hinstDLL = 0;
谢谢!