"%temp%"を入力して実行時にタイプすると簡単に見つかる一時フォルダにファイルを保存しますが、わからない場合はに移動します。はC++からです。ファイルを%temp%フォルダに保存しますか?
"GetTempPathA"や "GetTempFileNameA()"のような関数を使用しようとしましたが、char値を返しません。私の目的のために、私は "TResourceStream"から "SaveToFile"メソッドを使用し、UnicodeStringを必要とします。
"%temp%"を入力して実行時にタイプすると簡単に見つかる一時フォルダにファイルを保存しますが、わからない場合はに移動します。はC++からです。ファイルを%temp%フォルダに保存しますか?
"GetTempPathA"や "GetTempFileNameA()"のような関数を使用しようとしましたが、char値を返しません。私の目的のために、私は "TResourceStream"から "SaveToFile"メソッドを使用し、UnicodeStringを必要とします。
いいえ、いずれもでもGetTempFileName
戻り値 char値です。一般に、C関数は文字列を返すことはありません。代わりに、文字列バッファとその文字列バッファの長さを渡します。関数は、に文字列バッファを要求された文字列で埋めます。
例えば、GetTempPath
を呼び出すには、次のコードを記述します。
TCHAR szTempPathBuffer[MAX_PATH];
GetTempPath(MAX_PATH, // length of the buffer
szTempPathBuffer); // the buffer to fill
szTempPathBuffer
は、一時ディレクトリへのパスが含まれます。
おそらく、ANSI関数(接尾辞がA
の関数)を明示的に呼び出すべきではないことに注意してください。 Windowsは10年以上にわたって完全にUnicodeになっています。 _UNICODE
が定義されているかどうかに応じて自動的に正しいバージョンの関数に解決されるWindowsヘッダーで定義されたマクロを使用するか、明示的にUnicodeバージョン(末尾にW
のもの)を呼び出します。おそらくあなたがしているものをSaveToFile
方法である
あなたはANSIバージョンを呼び出しているので、あなたは(char
値で構成)ANSI文字列を取得しているのではなく、(wchar_t
値で構成)Unicode文字列、期待を呼びそそうとする。
これらのapisは必要なものであり、返す文字列です。それらのドキュメントを読んでください。 UnicodeStringを取得するには、Wバージョンを呼び出します。 –