0

有人可以告诉我如何在消息框中输出 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();
}
4

2 回答 2

1

你不能添加:

szFileName + " not found", 

简单修复:

MessageBox(NULL, szFileName, L"File not found", MB_OK);
于 2013-03-29T19:23:38.590 回答
1

C++ 不支持 '+' 来连接 char 或 TCHAR 数组。您需要为此使用字符串类,或者使用 C 风格的方式使用 strcat 和堆栈上的缓冲区。

由于您使用的是 C++,因此如果您使用的是 ATL/mfc,则可以使用 CString,或者您可以使用以下内容:

typedef std::basic_string<TCHAR> tstring;

...
MessageBox(NULL, tstring(szFileName) + " not found", NULL, MB_OK);

通常的 C++ 管道作为练习留给读者。

于 2013-03-29T19:26:18.777 回答