我正在尝试在C++中创建一个静态结构:
static struct Brushes
{
static HBRUSH white ;
static HBRUSH yellow ;
} ;
但它不起作用,我得到:
Error 4 error LNK2001: unresolved external symbol "public: static struct HBRUSH__ * Brushes::white"
为什么?
这样做是为了能够使用Brushes::white,Brushes::yellow在整个程序中,而无需创建的实例Brushes.
您必须在某处定义静态成员,通常在.cxx文件中,例如:
HBRUSH Brushes::white;
Run Code Online (Sandbox Code Playgroud)
原因是头文件没有定义,它只声明它.
您应该删除第一个static从struct Brushes线.然后,您需要在.cpp文件中定义初始值(并声明其内存),如下所示:
HBRUSH Brushes::white(some_init_value);
HBRUSH Brushes::yellow(some_init_value);
Run Code Online (Sandbox Code Playgroud)