Symbian 碎碎念2

    技术2022-05-18  24

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://liangroger.blogbus.com/logs/59870296.html

     

    23.3rd你要想调试控制台,就在epoc.ini里面加上textshell

    24.//得到IAP ID_LIT(KIapIdSettingName, "IAP//id");

    // start a test connectionRSocketServ socketServ;User::LeaveIfError(socketServ.Connect());CleanupClosePushL(socketServ);

    RConnection connection;User::LeaveIfError(connection.Open(socketServ));CleanupClosePushL(connection);

    User::LeaveIfError(connection.Start());

    // get the IAP IDTUint32 iapId;User::LeaveIfError(connection.GetIntSetting(KIapIdSettingName, iapId));

    CleanupStack::PopAndDestroy(2); // connection, socketServ

    25.// Get the application UI from CEikonEnvCYourApplicationAppUi* appui = (static_cast<CYourApplicationAppUi*>(iEikonEnv->AppUi()));// Get the view you wantCSomeView* view = (CSomeView*)appui->View(TUid::Uid(ESomeViewId));

    26.设置全屏SetExtentToWholeScreen();//and in the void HandleResourceChange( TInt aType );if (ETrue)        {      SetExtentToWholeScreen();        }    else        {        if (aType == KEikDynamicLayoutVariantSwitch)            {            TRect mainPaneRect;            AknLayoutUtils::LayoutMetricsRect(                AknLayoutUtils::EMainPane, mainPaneRect );                    SetRect(mainPaneRect);            }        }

    27.CBA//#include <avkon.rsg>SwitchCbaL(TInt aResourceId)    {    if (aResourceId == 0)        aResourceId = R_AVKON_SOFTKEYS_OPTIONS_EXIT;    CEikButtonGroupContainer* cba = Cba();    cba->SetCommandSetL(aResourceId);    cba->DrawNow();    }

    HandleCommandL(TInt aCommand)    {    switch ( aCommand )        {        case EVRexCmdAppReturn:            {            DoReturnL();            break;            }        case EVRexCmdAppRecord:            {            DoRecordL();            break;            }    ....    }   }//in rssRESOURCE CBA r_vrex_pause_stop    {    buttons =            {        CBA_BUTTON { id=EVRexCmdAppPause; txt = qtn_vrex_pause; },        CBA_BUTTON { id=EVRexCmdAppStop; txt = qtn_vrex_stop; }        } ;    }RESOURCE CBA r_vrex_continue_return    {    buttons =         {        CBA_BUTTON { id=EVRexCmdAppContinue; txt = qtn_vrex_continue; },        CBA_BUTTON { id=EVRexCmdAppReturn; txt = qtn_vrex_return; }        } ;    }...

    28.//文件系统的简单使用BaflUtils::PathExists()BaflUtils::FileExists()

    29.//手机屏幕大小TPixelsTwipsAndRotation pixTwipsRot;    CCoeEnv::Static()->ScreenDevice()->GetDefaultScreenSizeAndRotation(pixTwipsRot);    TSize screensize = pixTwipsRot.iPixelSize;

    30.指定大小内存清空Mem::FillZ();

    31.当要进行的操作是最急需处理的,即使UI事件也不能中断它,可以将本线程设为最高优先级:RThread().SetPriority( EPriorityAbsoluteHigh );......RThread().SetPriority( EPriorityLess );

    32.将8位字符填充到16位字符中TInt16* aBuffer;TInt8* p;//add contentsaBuffe全为将p第j个8位字符填充到为空值的aBuffer中第i个16位字符中

    33.线程中自己创建清除栈创建了还不行,需要至少一个TRAP或TRAPD TInt Fun( TAny* aPtr ){    CTrapCleanup* cleanup = CTrapCleanup::New();   //判断是不是为空,不为空进入下一步    TRAPD( err, DoThread( aPtr ) );    delete cleanup;    return 0;}

    34.位图操作(读写位图,改变位图)TBitmapUtil 直接操作数据区:比如:你要自己处理像素数据,处理图像。使用数据区,是不是只能读和修改,不能增加数据。Symbian中操作图片时,一般大于4K的图片,需要锁住图片内存 TBitmapUtil bmpUtil( iOffScrnBmp );bmpUtil.Begin( TPoint( 0, 0 ) );pData = (TUint8*)iOffScrnBmp->DataAddress();bmpUtil.End();

    35.读取文件内容到内存中HBufC8* C×××Container::ReadFileLC(const TDesC& aFileName)    {    RFs rfs;    RFile file;    User::LeaveIfError(rfs.Connect());    CleanupClosePushL(rfs);    User::LeaveIfError(file.Open(rfs, aFileName, EFileRead));    CleanupClosePushL(file);    TInt size;    User::LeaveIfError(file.Size(size));    HBufC8* buf = HBufC8::NewLC(size);    TPtr8 bufPtr(buf->Des());    User::LeaveIfError(file.Read(bufPtr));    CleanupStack::Pop(); // buf    CleanupStack::PopAndDestroy(2); // file, rfs    CleanupStack::PushL(buf);    return buf;    }

    36.模拟按键    RWsSession ws;    ws.Connect();    TRawEvent ev1;    ev1.Set(TRawEvent::EKeyDown, EStdKeyYes);    ws.SimulateRawEvent(ev1); // CAPABILITY Req. SwEvent    //User::After(1000000);     TRawEvent ev2;    ev2.Set(TRawEvent::EKeyUp, EStdKeyYes);    ws.SimulateRawEvent(ev2);    ws.Flush();    ws.Close();

    37。桌面主程序即UID3为0x101FD64C(idle.exe)

    38.检查盘符内存是否够用    TVolumeInfo volinfo;    TInt err=iFs.Volume(volinfo,EDriveC);//检查c盘下面剩余空间    if ( volinfo.iFree<(iFrameCount*iFrameSize))        {        //enough        }

    devicesdevices -setdefault @****bldmake bldfilesabld build armi urel再在Carbide c++中编译sis

    1、程序安装完后自启动设置:PKG文件中,执行文件(app/ exe)后面加上:FR, RI,并且放在安装文件列表的最后一个,等所有资源安装后再自启动。例:****.app",FR,RI

    2、三版写文件的一种方法。TFileText,逐行读取数据。RFs fs;RFile iFile;User::LeaveIfError(fs.Connect());iFile.Open(fs,KFilename,EFileRead|EFileShareAny);TFileText lineRead;lineRead.Set(iFile);lineRead.Seek(ESeekStart);TBuf<256> temp;lineRead.Read(temp);......lineRead.Read(temp);......iFile.Close;fs.Close;

    ///    RFs fs;    fs.Connect();    RFile file;    _LIT(KFilename,"c://weather.xml");//    if(BaflUtils::FileExists(fs,KFilename))//        {//        file.Replace(fs,KFilename,EFileStreamText|EFileWrite|EFileShareAny);//        }//    else //        {//        file.Create(fs,KFilename,EFileWrite|EFileShareAny);//        }//    file.Write(0,iFeedText);    file.Open(fs,KFilename,EFileRead|EFileShareAny);    file.Read(iFeedText);    file.Close();    fs.Close();3、在类的const函数中使用并改变类的普通变量的值.

    void CClassU::Draw(const TRect& aRect) const{((CClassU*)this)->index = 0;//index是CClassU类的普通变量

    }

    4.TInt CCallElfAppUi::cInt(const TDesC& aStrInt){TBuf8<10> aNum;aNum.Copy(aStrInt);TLex8 lex8(aNum);TInt iNum;TInt ret = lex8.Val(iNum);if (ret != KErrNone){return 0;}else{return iNum;}}

    5.和C++没有区别~ 按位非 ~expr<< 左移 expr1 << expr2>> 右移 expr1 >> expr2& 按位与 expr1 & expr2^ 按位异或 expr1 ^ expr2| 按位或 expr1 | expr2&= 按位与赋值 expr1 &= expr2^= 按位异或赋值 expr1 ^= expr2|= 按位或赋值 expr1 |= expr2

    6.快捷使用方法template <class T>inline TBool Rng(T aMin,T aVal,T aMax)    {return(aVal>=aMin && aVal<=aMax);}

    7.手机桌面UID/*SDK                                             UID                   Process Name2nd edition                                 0x100058b3      (Phone)3rd edition                                    0x100058b33rd edition and 3rd edition FP1                0x101fd64c        (Standby Mode)3rd edition FP2                             0x102750F0       (Standby Mode)5th    edition                                    0x102750F0 */

     


    最新回复(0)