Это недопустимо:
inputFilename += "somefile.txt";
outputFilename += "someotherfile.txt";
Вы можете использовать _tcscpy()
для копирования строк:
TCHAR inputFilename[256] = { 0 }; /* FYI, the '= { 0 }' initialises the array.*/
TCHAR outputFilename[256] = { 0 };
_tcscpy(inputFilename, "somefile.txt");
и использовать _tcscat()
для объединения:
_tcscat(inputFilename, "another-bit.txt");
Затем можно перейти к ConvertFile()
:
ConvertFile(inputFilename, outputFilename);
, поэтому нет необходимости создавать еще один указатель на эти переменные (так как массивы будут распадаться на указатели).
EDIT:
После смены языка вы можете использовать std::basic_string
:
std::basic_string<TCHAR> inputFilename(TEXT("somefile.txt"));
std::basic_string<TCHAR> outputFilename(TEXT("someotherfile.txt"));
И вы можете выполнить конкатенацию, как вы изначально хотели:
inputFilename += TEXT("a-bit-more");
И использовать c_str()
метод доступа к внутреннему массиву символов для передачи ConvertFile()
:
ConvertFile(inputFilename.c_str(), outputFilename.c_str());
Обратите внимание, что c_str()
возвращает const
, измените ConvertFile()
на ( Я сделал предположение, что ConvertFile()
не изменяет буферы, переданные в ):
ConvertFile(LPCTSTR szIn, LPCTSTR, szOut);