查看: 2001|回复: 3

对于OSG程序设计中类型转换的一个问题

[复制链接]

该用户从未签到

发表于 2009-3-12 14:39:13 | 显示全部楼层 |阅读模式
路径编辑器那节:
void CRambleSystemView::OnInitialUpdate()
{
        CView::OnInitialUpdate();
        if (iFileNum==1)
        {
                iFileNum++;
                CString csFileName= GetDocument()->GetFileName();
                mOSG->InitOSG(csFileName.Getstring());
               
                mThreadHandle=(HANDLE)_beginthread(&CCoreOSG::Render,0,mOSG);
        }
        else
        {
                iFileNum++;
                CString csFileName=GetDocument()->GetFileName();
        //        mOSG->ReplaceSceneData(csFileName.GetString());    //CString 不能转换为string类型
       
        }
}

CCoreOSG.h 中 定义了 void InitOSG(std::string modelname);

但是 CString 类型不能直接转换。编译始终不通过。 如果处理这个问题?

该用户从未签到

发表于 2009-3-12 15:22:16 | 显示全部楼层
虽然这不是OSG问题,不过还是大概说一说……
将CString转换为string的话,使用GetBuffer();反之使用c_str()
wchar_t*和char*相互转换的话,VS2005可以使用wcstombs(),mbstowcs();VS2003则使用WideCharToMultiByte(),MultiByteToWideChar()

该用户从未签到

 楼主| 发表于 2009-3-12 16:10:30 | 显示全部楼层
原帖由 array 于 2009-3-12 15:22 发表
虽然这不是OSG问题,不过还是大概说一说……
将CString转换为string的话,使用GetBuffer();反之使用c_str()
wchar_t*和char*相互转换的话,VS2005可以使用wcstombs(),mbstowcs();VS2003则使用WideCharToMultiBy ...


谢谢了。。我继续试。。。。

该用户从未签到

 楼主| 发表于 2009-3-12 19:43:26 | 显示全部楼层

回复 2楼 的帖子

array。谢谢啦!问题解决了。

把unicode 字符集去掉之后完全重编译过后就好了~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表