在静态库LIB中使用CString类报错
请教各位大侠,现在兄弟在开发一个系统时,把一些公用的程序形成了一个静态LIB库,在这个库中的一个类定义了有CString类的一个成员变量,编译形成LIB没有问题,只是在形成可执行文件后,一运行到设置此变量的一个函数,就会出现
First-chance exception in HT3007B.exe (MFC42D.DLL): 0xC0000005: Access Violation.
然后程序就退出了。
部份代码:
class CTestCls
{
...
public:
CString m_str;
};
...
void CTestCls::SetRefUnit(CString &src)
{
m_str=src;
}
上面的代码是形成的需要共用的一个类代码,在使用LIB时,总是在m_str=src一行就退出了。不知道是什么原因?
另外好象形成扩展DLL,也会存在这种问题,总是在CString成员变量报错。
另外,就是把形成LIB的程序文件直接放到项目程序里面编译后,运行,是不会出现这样的问题的。另外就是一旦使用LIB后,好象一个类被创建了两次。
在线期待中......