Создание программы извлечения / компиляции в Visual C ++ 2010, но с ошибками

Я создаю .SM2 и .RM2 экстрактор / компилятор для игры, но у меня проблемы с кодом. Я совсем не имею опыта в C ++, и код является исходным кодом, предоставленным оригинальным создателем. Даже в его оригинальном файле, который я не редактировал, были ошибки, но он все равно создал программу. Может кто-нибудь, пожалуйста, помогите мне с ошибками?

Ошибки:

Ошибка 1: ошибка C2664: «CreateDirectoryW»: невозможно преобразовать параметр 1 из «const char [25]» в «LPCWSTR»

Ошибка 2: ошибка C2664: «CreateDirectoryW»: невозможно преобразовать параметр 1 из «char *» в «LPCWSTR» (X3)

Ошибка 4: ошибка C2664: «FindFirstFileW»: невозможно преобразовать параметр 1 из «char [256]» в «LPCWSTR»

Ошибка 5: ошибка C2440: «инициализация»: невозможно преобразовать из «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)

Пожалуйста помоги,
Спасибо,
Cameron
Sawaya

2

Решение

Способ 1: установите настройку вашего проекта на Use Multi-Byte Character Set:

Настройте свойства> Общие> Проект по умолчанию> Набор символов> Использовать многобайтовый набор символов


Способ 2:

  • Для ошибки 1/2/4:

    Вы должны конвертировать char[] в wchar_t[] прежде чем перейти к CreateDirectory() (Для вашей ошибки 1, аналогично для других ошибок 2 и 4), так как они используют разные типы кодировки символов. Пытаться swprintf с %hs флаг.

    Пример:

    wchar_t  ws[100];
    swprintf(ws, 100, L"%hs", ".\TESTFOLDER\TESTFOLD2ER");
    
  • Для ошибки 5:

    Вы можете использовать wcstombs функция для преобразования wchar_t[] в char[], ссылка Вот.


2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]