2

ゲーム用の .SM2 および .RM2 エクストラクタ/コンパイラを構築していますが、コードに問題があります。私は C++ の経験がまったくなく、コードは元の作成者によって提供されたソース コードです。私が編集していない彼の元のファイルにもエラーがありましたが、それでも彼はプログラムを作成しました。誰かがエラーを手伝ってくれますか?

エラー:

Error1: エラー C2664: 'CreateDirectoryW': パラメーター 1 を 'const char [25]' から 'LPCWSTR' に変換できません

Error2: エラー C2664: 'CreateDirectoryW': パラメーター 1 を 'char *' から 'LPCWSTR' に変換できません (X3)

Error4: エラー C2664: 'FindFirstFileW': パラメーター 1 を 'char [256]' から 'LPCWSTR' に変換できません

Error5: エラー C2440: 'initializing' : 'WCHAR [260]' から 'char*' に変換できません

明らかにエラーがある私のコードは次のとおりです。

CreateDirectory(".\\TESTFOLDER\\TESTFOLD2ER", NULL);   (This is for Error 1)

CreateDirectory(string, NULL);
break;                          (This is for Error2)


if ((hdl = FindFirstFile(asteriskpath, &data)) == INVALID_HANDLE_VALUE)
    return;       (For Error3)

char* filename = data.cFileName;
char current_dir[256];       (For Error4)

助けてください、ありがとう、キャメロン・サワヤ

4

1 に答える 1

2

方法 1 : プロジェクトのキャラクター設定をUse Multi-Byte Character Set次のように設定します。

プロパティを設定 > 一般 > プロジェクトのデフォルト > 文字セット > マルチバイト文字セットを使用


方法 2 :

  • エラー 1/2/4 の場合:

    異なる文字エンコーディング タイプを使用しているため、(エラー 1 の場合、他のエラー 2 および 4 の場合と同様)に渡す前に最初にchar[]変換する必要があります。フラグで試してみてください。wchar_t[]CreateDirectory()swprintf%hs

    例:

    wchar_t  ws[100];
    swprintf(ws, 100, L"%hs", ".\TESTFOLDER\TESTFOLD2ER");
    
  • エラー 5 の場合:

    wcstombsに変換する関数をwchar_t[]使用できます。ここchar[]を参照してください。


于 2014-01-01T03:28:52.077 に答える