C++ 类的成员变量能在成员函数中赋值吗解决方案

C++ 类的成员变量能在成员函数中赋值吗
代码如下所示:
.h文件:
class DLFILE
{
public: 
DLFILE(); 
~DLFILE(); 
void F_Init();
CString gstrLogFileRootPath;
};

.cpp文件
DLFILE::DLFILE()

//赋值正常
gstrLogFileRootPath = _T("");

}
DLFILE::~DLFILE()
{
}
void DLFILE::F_Init()

char cConfigValue[1024]; 
memset(cConfigValue,NULL,sizeof(cConfigValue));
memcpy(cConfigValue,"123",3);
//此时会报内存异常
gstrLogFileRootPath.Format("%s",cConfigValue);

}
F_Init()是一个export的函数,在其他的exe中加载这个dll后调用F_Init函数,赋值时就报内存异常。

------解决思路----------------------
显然不是成员变量赋值本身的问题。导出类中使用了CString,也就是需要依赖MFC库,不知道楼主生成dll的时候是不是把MFC库也链接进来。我建议把MFC库静态链接编译到dll中,避免调用dll的机子里有多个版本的MFC动态库产生的冲突。
------解决思路----------------------
引用:
memcpy(cConfigValue,"123",4);

之前调用了memset(cConfigValue,NULL,sizeof(cConfigValue));,已经把数组都清空为0了,不会影响后面的memcpy
------解决思路----------------------
要看你在什么环境下使用dll了,一般要使用都要加上extern, 如果在c里面还得加上extern "C"作为标识
------解决思路----------------------
你确认一下使用者,是否正确呼叫了 构造函数,同时没有对这个结构执行 ZeroMemory 之类的操作。