手机操盘手免费体验火热进行
20万人已抢先免费使用
624MHz CPU极速智能HKC G920震憾登场
夏新智能手机专区
主流智能手机音乐播放软件横向评测 最新手机电影
发新话题
打印

[编程] 求助:OnBoardC编写程序,在650上无事,在TT5必死

求助:OnBoardC编写程序,在650上无事,在TT5必死

学习Preference的操作,但是找了半天也没有找到怎么删除,只好用Resource的方法来:

直接用一个按钮调用如下代码
:(准备拿来删除PowerDigi的注册信息…………………………)

void ClearPG ( void )
{
LocalID dbID ;
DmOpenRef gLibDB ;
UInt16 ResIndex ;
Err error ;
char* NumberStr ;

WinDrawChars ( "ClearPG OK" ,
   StrLen ( "ClearPG OK" ) , 10 , 100) ;
SysTaskDelay ( delayTime ) ;

dbID = DmFindDatabase ( 0 , "Saved Preferences" ) ;

WinDrawChars ( "GetDBID" ,
   StrLen ( "GetDBID" ) , 10 , 100) ;
StrIToA (  NumberStr , ( Int32 )dbID  ) ;
WinDrawChars ( NumberStr , StrLen ( NumberStr ) , 10 , 80) ;
SysTaskDelay ( delayTime );

gLibDB = DmOpenDatabase ( 0 , dbID , dmModeReadWrite ) ;

WinDrawChars ( "GetDBPointer" ,
   StrLen ( "GetDBPointer" ) , 10 , 100) ;
StrIToA (  NumberStr , ( Int32 ) gLibDB ) ;
WinDrawChars ( NumberStr , StrLen ( NumberStr ) , 10 , 80) ;
SysTaskDelay ( delayTime );

if ( gLibDB != NULL )
{  
  ResIndex = DmFindResource ( gLibDB , 'memo' , 49800 , NULL ) ;
  
   WinDrawChars ( "GetResourcePointer" ,
   StrLen ( "GetResourcePointer" ) , 10 , 100) ;
  SysTaskDelay ( delayTime );
  
    if ( ResIndex != 0xFFFF )
  {
   error = DmRemoveResource ( gLibDB , ResIndex ) ;
   
     WinDrawChars ( "Clear OK" ,
    StrLen ( "Clear OK" ) , 10 , 120) ;

  }
  else
  {
   
   WinDrawChars ( "Cannot find PowerDigi Reg Info" ,
    StrLen ( "Cannot find PowerDigi Reg Info" ) , 10 , 120) ;
   SysTaskDelay ( delayTime );

  }
}
else
{
  WinDrawChars ( "Cannot find Saved Preference" ,
   StrLen ( "Cannot find Saved Preference" ) , 10 , 100) ;
  SysTaskDelay ( delayTime );
}


}



用OnboardC编译
Treo650上面显示 Cannot find PowerDigi Reg Info
TT5,在ClearPG OK后面直接显示Fatal Exception,或者在GetDBID后面花屏死机

求助各位DX指点一二
你没有给NumberStr分配内存空间!
发新话题