Может кто-нибудь сказать, пожалуйста, как я могу вывести szFileName в окне сообщения?
Моя попытка ниже не работает
//Retrieve the path to the data.dat in the same dir as our app.dll is located
TCHAR szFileName[MAX_PATH+1];
GetModuleFileName(_Module.m_hInst, szFileName, MAX_PATH+1);
StrCpy(PathFindFileName(szFileName), _T("data.dat"));
FILE *file =fopen(szFileName,"rb");
if (file)
{
fseek( file,iFirstByteToReadPos, SEEK_SET);
fread(bytes,sizeof(unsigned char), iLenCompressedBytes, file);
fclose(file);
}
else
{
MessageBox(NULL, szFileName + " not found", NULL, MB_OK);
DebugBreak();
}
Вы не можете добавить:
szFileName + " not found",
Простое исправление:
MessageBox(NULL, szFileName, L"File not found", MB_OK);
C ++ не поддерживает ‘+’ для конкатенации массивов char или TCHAR. Для этого вам нужно использовать строковый класс или сделать это в стиле C с помощью strcat и буфера в стеке.
Поскольку вы используете C ++, вы можете использовать CString, если вы используете ATL / mfc, или вы можете использовать что-то вроде:
typedef std::basic_string<TCHAR> tstring;
...
MessageBox(NULL, tstring(szFileName) + " not found", NULL, MB_OK);
Обычная сантехника C ++ была оставлена читателю в качестве упражнения.