0

TEXT("\\*.txt")c++ で次の関数の代わりに文字列変数を使用することは可能ですか?

StringCchCat (szDir, MAX_PATH, TEXT("\\*.txt"));

例:

string ext = "\\*.pdf";
StringCchCat (szDir, MAX_PATH, ext);

with VS C++ はコンパイル時にエラーを返します:

error C2664: 'StringCchCatW': can not convert parameter 3 from 'std :: string' to 'STRSAFE_LPCWSTR'
4

2 に答える 2

0

変数extはワイド文字ではありません。@billzが指摘したように、実際には文字列型です。StringCchCat 関数のドキュメントを見ると、Microsoft はこの関数の 3 つのオーバーロード形式を提供しているようです。1 つは標準文字用、もう 1 つは「TCHAR」用、もう 1 つはワイド文字用です。いずれにせよ、String は自動的に char 型にキャストされないため、c_str() 関数を使用する必要があります。

于 2013-06-30T09:30:51.793 に答える