读书人

_tcsstr相关的国际化的有关问题

发布时间: 2012-03-14 12:01:12 作者: rapoo

_tcsstr相关的国际化的问题
我有个下面的代码:

C/C++ code
   if ( (_tcsstr(Obj->getObjName()->c_str(),                            (*getObjectStager())[i]->getObjName()->c_str()) != NULL                            ||                            _tcsstr((*getObjectStager())[i]->getObjName()->c_str(),                            Obj->getObjName()->c_str())) != NULL) 


貌似如果c_str()得到的字符串有中文字符的话,上面的代码就会崩溃。。。。请问上面的代码有什么国际化的问题吗?

第一次在本版提问,如果有不规范处,请指教。
谢谢!

[解决办法]
怀疑你的工程是unicode工程,但getObjName返回的是string。结果找不到字符串结束符 '\0',whar_t的,0x00 0x00这么两个字节(linux下,是4字节)。
[解决办法]
探讨

引用:

getObjName() 这个返回的是string么?
string对应char
wstring对应wchar_t

_tcsstr这个根据是否设置UNICODE对应wchar_t或char。确定你用得是正确的


getObjName()是这样定义的:
C/C++ code

std::wstring * g……

读书人网 >C++

热点推荐