_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字节)。
[解决办法]