当前位置: 代码迷 >> Symbian >> symbian 线程有关问题
  详细解决方案

symbian 线程有关问题

热度:3179   发布时间:2013-02-26 00:00:00.0
symbian 线程问题
高手请进:

  我现在建立一个线程 
        TInt result1 = iThread.Create(_L("ReadImage"),(TThreadFunction)ReadImageDraw, 4096,
     KMinHeapSize, KMinHeapSize*1000*2, iEagleEyePlayContainer, EOwnerThread) ;
     User::LeaveIfError(result1) ;
     iThread.Resume();

线程体函数:static void ReadImageDraw(CEagleEyePlayContainer *iCEagleEyePlayContainer)
    {
                iCEagleEyePlayContainer->DrawImage();
            }

void CEagleEyePlayContainer::DrawImage()
{
           RFs fs;
 fs.Connect();
 RFbsSession::Connect(fs);
 RWsSession session;
 session.Connect(fs);
 
 CFbsBitGc* bitgc = NULL;
 
   CWsScreenDevice* screenDevice = new(ELeave)CWsScreenDevice(session);
//   User::LeaveIfError(screenDevice->Construct());
    CFbsScreenDevice* fbsDevice = CFbsScreenDevice::NewL(KNullDesC,screenDevice->DisplayMode());
    User::LeaveIfError(fbsDevice->CreateContext(bitgc));

 bitgc->BitBlt(TPoint(0,0),Playbmp);

 delete bitgc;
 delete screenDevice;
 delete fbsDevice;
 session.Close(); 
 fs.Close();
 
         }



程序执行到 CFbsScreenDevice* fbsDevice = CFbsScreenDevice::NewL(KNullDesC,screenDevice->DisplayMode());时就报错无效的窗口句柄,不知道怎么解决,请高手帮忙


或者有其他的办法可以实现在线程体函数里面绘制一幅图也可以
------解决方案--------------------------------------------------------
难道没有人回答吗??
------解决方案--------------------------------------------------------
检查前面函数的返回值。

------解决方案--------------------------------------------------------
引用:
检查前面函数的返回值。


那个函数的返回值??
------解决方案--------------------------------------------------------
引用:
引用:

检查前面函数的返回值。


那个函数的返回值??


Connect函数一般都有返回值,建议不要忽略。
------解决方案--------------------------------------------------------
CFbsScreenDevice* fbsDevice = CFbsScreenDevice::NewL(0, screenDevice->DisplayMode())

这样试试看