Wind-Bell 2006-9-24 10:26
求助: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指点一二