有关如何从std::string
转换为LPCTSTR
的典型问题的新版本。
通过阅读不同的SO帖子,我了解到我应该这样做:
CreateDirectory(path.c_str(),NULL);
而且编译器仍然给出错误,因为
cannot convert from const char * to LPCTSTR
。我试过了:
CreateDirectory((LPCTSTR)path.c_str(),NULL);
没有错误!
仍然将创建的目录(在正确的位置)称为:
D:\\something\\㩄ぜ弲久䅓余屓䱆彄湡敤屲䵉ⴱ㠶ⴰⵃㅇ㉜洰就䥄牃獥汵獴촀췍췍췍췍췍췍췍﷽ꮫꮫꮫﺫﻮﻮ
正如您所猜测的,这并不是我想要的。
那我想念什么呢?它与UNICODE/ANSI有关吗?我该如何解决?
最佳答案
您的问题在于,根据您的构建是否支持unicode(是否设置了unicode标志),将LPCTSTR
解析为wchar_t*
或char*
。
要显式调用char*
版本,请调用CreateDirectoryA()
。
关于c++ - std::string到LPCTSTR,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16711124/