Discussion Board

Results 1 to 4 of 4
  1. #1
    Registered User hherima's Avatar
    Join Date
    Sep 2009
    Location
    beijing
    Posts
    125
    现有一问题,将一个const TDesC& 的返回值用%S打印出来。结果崩溃了。
    Code:
    const TDesC& CFtLoginEngine::ConvertENUMtoDes(TInt aEvent)
    	{
    	FUNC_NAME1();
    	TBuf<64> buf;
    	LogEventMap::iterator it= iLoginEventMap.find(aEvent);
    	if(it == iLoginEventMap.end())
    		{
    		buf.Copy(KNullDesC16);
    		}
    	else
    		{
    		wstring is = iLoginEventMap[aEvent];
    		buf.Copy(DesConv::ConvertToDesC16(is));
    		}
    	return buf;
    	}
    下面是打印%S的代码。。。。
    Code:
    	RichLOG("login","<1.0> CFtLoginEngine::StartLogin Style = [%S] ,iImState= [%S],loginmode = [%S]"
    			,&(ConvertENUMtoDes(aStyle)),&(ConvertENUMtoDes(iImState)),&(ConvertENUMtoDes(iLoginMode)))
    RichLOG是没有问题的。问题好像是在const TDesC& 的返回值???
    求解呀!
    -------------------------------------------------------------------
    i am a newbie, but i want to be a remarkable one!
    -------------------------------------------------------------------

  2. #2
    Registered User hherima's Avatar
    Join Date
    Sep 2009
    Location
    beijing
    Posts
    125
    在网上查了查,这个问题吧,我觉得应该是这样:
    ConvertENUMtoDes函数中的 TBuf<64> buf;是局部变量,return bug的时候,以临时变量身份返回!
    然后,再在RichLOG里使用取地址符&可能就空指针了,对临时变量进行取地址,貌似有点问题,呵呵。也在看临时变量这个东东。有头绪了再回复该贴!
    -------------------------------------------------------------------
    i am a newbie, but i want to be a remarkable one!
    -------------------------------------------------------------------

  3. #3
    Registered User hherima's Avatar
    Join Date
    Sep 2009
    Location
    beijing
    Posts
    125
    我是这样解决问题的,直接在log函数里写&TPtrC(ConvertENUMtoDes(aEvent),ConvertENUMtoDesLenght(aEvent)) 这样对局部变量取地址,貌似可以!对临时变量取地址就不行,好神奇,哈哈!
    -------------------------------------------------------------------
    i am a newbie, but i want to be a remarkable one!
    -------------------------------------------------------------------

  4. #4
    Registered User wiso33's Avatar
    Join Date
    Mar 2009
    Posts
    389
    TBuf<64> buf;
    改成:
    HBuf *buf'

Similar Threads

  1. Convert const TDesC* to TDes
    By vql in forum Symbian C++
    Replies: 4
    Last Post: 2009-08-01, 03:18
  2. How to convert TBuf to Const TDesc
    By JasonSmithMiller in forum Symbian C++
    Replies: 3
    Last Post: 2008-10-16, 19:58
  3. Problem with const TDesC& aUri
    By doesitmatter in forum Symbian C++
    Replies: 4
    Last Post: 2007-11-19, 21:36
  4. How to Convert Tint to const TDesC& ?
    By HidayathKhan in forum Symbian C++
    Replies: 6
    Last Post: 2007-10-17, 13:09
  5. Replies: 4
    Last Post: 2007-08-01, 07:01

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Nokia Developer aims to help you create apps and publish them so you can connect with users around the world.

京ICP备05048969号  © Copyright Nokia 2013 All rights reserved