我先描述一下需求,我希望要实现一个这样功能,在一个类似AddPoint这样的功能中,一个界面,显示点信息,包括点名、坐标和点的属性。根据不同行业、客户,属性需要可以自己定义。所以属性我就存放在文件里了。属性包括两部分,显示的文本和属性编码。
1.
我实现的方法。就是定义了一个类,类如下:
//电力上的跨越物属性
class CPowerSpanProperty
{
public:
CString m_strGroundExplain;//地物属性介绍,用于在界面显示使用,例如:220V电力线
CString m_strGroundCode;//地物属性编码,例如:220KV用于数据导出格式时拼接使用
CPowerRule* m_Parent;//属于哪个大类,提高遍历效率用
};
我在一个类里,用一个CArray来保存
CArray <CPowerSpanProperty,CPowerSpanProperty&> m_subItems;
2.我通过读写文件,来填充我的对象。填充过程我认为是没有问题的,我调试过。
填充的代码我写在一个地方了。可以调用。调用的时候是正常的,但是运行一段时间后。我读的正确的数据就出错了。
对于这个问题,我尝试过是不是我读入的时机不对,因为我这个CArray的对象是放在Document里的。那么就要我的Document构造好之后。我在CWinApp的InitInstance的最后来读文件。写入Document的CArray <大类型,大类型&> 里,到实际使用的某个界面的时候。原先填充的正确数据全部都变了。原来比如是220V电力线,但是实际显示的肯能是随机字符,也可能是空白了。这个很奇怪。我不知道是不是因为之后的什么地方还可能改变我的内存,于是,我换了个地方,在View的OnInitialized的方法里去读文件。
这个时候,在模拟器上是没有问题了。放到实际的pda中。又出现问题了。现在我是没什么好方法了。
我考虑的,可能有两种。
1.是不是CString作为成员变量会有问题?
2.我看别人用的都是CArray <类型*,类型*> 这个方式,或者用CTypedPtrArray <类型*,类型*> 这样的。
那么CArray和CTypedPtrArray有什么不同呢?
我看以前别人作的时候没有使用CString作成员变量过。是不是用TCHAR数组会好一些??
希望您给个大概思路。我好尝试。或者解答以下我的问题。谢谢关注。
------解决方案--------------------------------------------------------
顶~
------解决方案--------------------------------------------------------
ding
------解决方案--------------------------------------------------------
漂流。。。。
我顶~~
------解决方案--------------------------------------------------------
友情uP!
------解决方案--------------------------------------------------------
有自己实现Serialize函数吗?
参见MSDN:Serialization in MFC。
------解决方案--------------------------------------------------------
你的类要从CObject或者CObject的子类派生,要声明DECLARE_SERIAL宏,要实现Serialize函数等等。
另外,容器类也需要你实现对应的Serialize函数的。
------解决方案--------------------------------------------------------
谢谢楼主,接分来了
------解决方案--------------------------------------------------------
继续混分...
------解决方案--------------------------------------------------------
来鸟
------解决方案--------------------------------------------------------
我顶~~
------解决方案--------------------------------------------------------
继续混分...
------解决方案--------------------------------------------------------
继续混分...
------解决方案--------------------------------------------------------
禁止刷屏
------解决方案--------------------------------------------------------
继续混分...
------解决方案--------------------------------------------------------
不刷了, 我混下分