当前位置: 代码迷 >> WinCE >> 关于wince封存数据在内存的方法
  详细解决方案

关于wince封存数据在内存的方法

热度:31   发布时间:2016-04-28 12:58:37.0
关于wince保存数据在内存的方法
请教下各位大侠

我现在用wince6.0做了一个应用,这个应用程序会调用一个Dll库,我所有的数据结构都在Dll中
现在情况是每次关了应用后,再打开,数据就初始化了,不能保存推出前的状态。
请问如何解决这个问题?
==================================================================================
我原来的方法是用.ini配置文件 存在flash ,但是flash只能擦写10万次,达不到要求
现在想把数据保存在内存中,请问有什么方法!


小弟新手,急求帮助啊!!!!

------解决方案--------------------
写一个不退出的程序后台运行,共享内存的方法。


但关机重启后数据也会恢复初始化状志。
------解决方案--------------------
系统从内存中移除 DLL 的条件是当前没有一个程序在用它。因此如果在后台运行一个程序,这个程序什么都不做,只是打开那个DLL,且一直不退出,那么这个DLL 就不会被系统从内存中删掉。你真正的应用程序每次启动打开的dll 就永远一直是同一个。
但是不知道你的DLL 是怎么实现的,如果对外的接口是个类,你的应用程序每次都要新实例化一个对象的话,就算dll没有被系统删除,但你应用程序里的数据依然会初始化。

------解决方案--------------------
没看明白这个getInstance()是个static 函数吗?怎么在 C 函数里直接调用了?但如果是static 函数,又怎么访问到成员变量了。。。
你试试直接在dll 中定义一个全局变量,
CRadioData CRadioIns;
然后在dll 中提供一个 C 函数接口
CRadioData * GetInstance()
{
return &CRadioIns;
}
最后在应用程序中
BYTE Radio_GetCurrentBand()
{
BYTE band;
CRadioData *pData;
pData = GetInstance();
band= pData->get_unchar_data(CRadioData::DATA_CUR_BAND);
return band ;
}

  相关解决方案