我写了个控件,其中有个方法是要返回一段繁体文字字符串。
该控件在aspx中的javascript里调用,使用alert()显示
我应该如何做,才能够使这段返回的文字无论操作系统是简体还是繁体,都能正确显示.
该方法为
BSTR CBCclientCtrl::getErrorStr(SHORT errnum)
{  
AFX_MANAGE_STATE(AfxGetStaticModuleState());

    LPCWSTR errstr;
switch (errnum)
{
case 0:errstr="失敗!";break;
                case 1:errstr="成功!";break;
default:errstr="不明異常!"; }


CString strResult=errstr; return strResult.AllocSysString();
}在javascript中显示 alert(.getErrorStr(0));急啊!!!!!!!!!!!11

解决方案 »

  1.   

    CBCclientCtrl::getErrorStr([in]SHORT errnum,[out,retval]BSTR* pVal)
      

  2.   

    ColderRain(一切尽在不言中):
    非常感谢!
    不过我不太明白你的意思,能讲得详细些吗?
    按我现在的做法只有将控件文件保存为gb2312时才可在简体系统中正常显示,保存为big5时可以在繁体系统中正常显示。有没有办法只做一个控件,可以实现在这两种系统中正常显示
      

  3.   

    com接口方法的返回值不能是BSTR的,一定要用HRESULT
    IDL:
    HRESULT getErrorStr(([in]SHORT errnum,[out,retval]BSTR* pVal);
      

  4.   

    1.你接口参数形式错了。
    2.不管是简体还是繁体不必做任何处理都应该可以显示出来的。主要是看你的文本的来源了,文本是什么类型的,它就显示什么类型的文本。你可以获得当前系统的字体(GetStockObject(SYSTEM_FONT)),判断它是gb2312还是big5,然后根据你具体的需求进行转换或是显示。或是直接根据系统字体格式化当前文本。
      

  5.   

    USE getErrorStr([in]SHORT errnum,[out,retval]BSTR* pVal)
    可能你用错了