std::string
char
ベースのデータを保持するクラスです。std::string
API関数にデータを渡すには、そのc_str()
メソッドを使用しchar*
て、文字列の実際のデータへのポインタを取得する必要があります。
CreateDirectory()
入力としてを取りTCHAR*
ます。UNICODE
が定義されている場合はにTCHAR
マップされwchar_t
、そうでない場合はchar
代わりににマップされます。固執する必要があるstd::string
が、コードを認識させたくない場合は、代わりに次のようにUNICODE
使用します。CreateDirectoryA()
#include "stdafx.h"
#include <string>
#include <windows.h>
int main()
{
std::string FilePath = "C:\\Documents and Settings\\whatever";
CreateDirectoryA(FilePath.c_str(), NULL);
return 0;
}
このコードをTCHAR
認識させるには、代わりに次のようにします。
#include "stdafx.h"
#include <string>
#include <windows.h>
int main()
{
std::basic_string<TCHAR> FilePath = TEXT("C:\\Documents and Settings\\whatever");
CreateDirectory(FilePath.c_str(), NULL);
return 0;
}
ただし、AnsiベースのOSバージョンは古くからあり、現在はすべてUnicodeです。 TCHAR
新しいコードではもう使用しないでください:
#include "stdafx.h"
#include <string>
#include <windows.h>
int main()
{
std::wstring FilePath = L"C:\\Documents and Settings\\whatever";
CreateDirectoryW(FilePath.c_str(), NULL);
return 0;
}