有关如何从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/

10-11 12:19