类的静态成员变量的值为什么改变了?
vc6 ,MFC
一个dll project,有一个类
class A{
static CString m_str;
static void SetString(CString s); //给m_str赋值,单步调试发现的确是赋值成功了的。
};
在.cpp文件中
CString A::m_str;
编译连接正确。
一个app程序使用dll的类A
CString s = A::m_str;
编译连接,说m_str是unresoved, 为什么?
只有把m_str再声明一遍在app工程里
CString A::m_str;
链接没有问题了。
执行程序就有问题
单步调试:代码进入dll里时,m_str显示被赋值了,但返回到exe的代码时,m_str就成了空的了。
静态变量为什么值会发生变化?如何解决?