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

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 に答える
1

追加できません:

szFileName + " not found", 

簡単な修正:

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