
WindowsAPIの, ReadFileを使ったとき, 末尾に変な文字列が格納されます。
該当のソースコード(C++でも可)
C
1#include <windows.h> 2#include <tchar.h> 3 4int WINAPI _tWinMain(HINSTANCE hInstance , HINSTANCE hPrevinstance , LPTSTR cmdLine , int nCmdShow) 5{ 6 HANDLE hFile = CreateFile(_T("test.c") , GENERIC_READ , 0 , NULL , OPEN_ALWAYS , FILE_ATTRIBUTE_NORMAL , NULL); 7 DWORD fileSize = GetFileSize(hFile , NULL); 8 TCHAR *tcPtr = (TCHAR*)malloc(fileSize); 9 DWORD byte; 10 ReadFile(hFile , tcPtr , fileSize , &byte , NULL); 11 MessageBox(NULL , tcPtr , _T("ファイルの内容") , MB_OK | MB_ICONINFORMATION); 12 free((void*)tcPtr); 13 return 0; 14} 15
結果(カレントディレクトリに「test.c」が必要) :
と, 末尾におかしな文字列が表示されています。
どうすればいいでしょうか。
環境
OS : Windows 10 Pro Education (GIGA端末)
コンパイラ : MinGW-w64 64bit版
gcc -v↓
Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=C:/DEV/Apps/MinGW-W64/mingw32/bin/../libexec/gcc/i686-w64-mingw32/8.1.0/lto-wrapper.exe Target: i686-w64-mingw32 Configured with: ../../../src/gcc-8.1.0/configure --host=i686-w64-mingw32 --build=i686-w64-mingw32 --target=i686-w64-mingw32 --prefix=/mingw32 --with-sysroot=/c/mingw810/i686-810-posix-dwarf-rt_v6-rev0/mingw32 --enable-shared --enable-static --disable-multilib --enable-languages=c,c++,fortran,lto --enable-libstdcxx-time=yes --enable-threads=posix --enable-libgomp --enable-libatomic --enable-lto --enable-graphite --enable-checking=release --enable-fully-dynamic-string --enable-version-specific-runtime-libs --disable-sjlj-exceptions --with-dwarf2 --disable-libstdcxx-pch --disable-libstdcxx-debug --enable-bootstrap --disable-rpath --disable-win32-registry --disable-nls --disable-werror --disable-symvers --with-gnu-as --with-gnu-ld --with-arch=i686 --with-tune=generic --with-libiconv --with-system-zlib --with-gmp=/c/mingw810/prerequisites/i686-w64-mingw32-static --with-mpfr=/c/mingw810/prerequisites/i686-w64-mingw32-static --with-mpc=/c/mingw810/prerequisites/i686-w64-mingw32-static --with-isl=/c/mingw810/prerequisites/i686-w64-mingw32-static --with-pkgversion='i686-posix-dwarf-rev0, Built by MinGW-W64 project' --with-bugurl=https://sourceforge.net/projects/mingw-w64 CFLAGS='-O2 -pipe -fno-ident -I/c/mingw810/i686-810-posix-dwarf-rt_v6-rev0/mingw32/opt/include -I/c/mingw810/prerequisites/i686-zlib-static/include -I/c/mingw810/prerequisites/i686-w64-mingw32-static/include' CXXFLAGS='-O2 -pipe -fno-ident -I/c/mingw810/i686-810-posix-dwarf-rt_v6-rev0/mingw32/opt/include -I/c/mingw810/prerequisites/i686-zlib-static/include -I/c/mingw810/prerequisites/i686-w64-mingw32-static/include' CPPFLAGS=' -I/c/mingw810/i686-810-posix-dwarf-rt_v6-rev0/mingw32/opt/include -I/c/mingw810/prerequisites/i686-zlib-static/include -I/c/mingw810/prerequisites/i686-w64-mingw32-static/include' LDFLAGS='-pipe -fno-ident -L/c/mingw810/i686-810-posix-dwarf-rt_v6-rev0/mingw32/opt/lib -L/c/mingw810/prerequisites/i686-zlib-static/lib -L/c/mingw810/prerequisites/i686-w64-mingw32-static/lib -Wl,--large-address-aware' Thread model: posix gcc version 8.1.0 (i686-posix-dwarf-rev0, Built by MinGW-W64 project)

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。