sizeof()にかける構造体の_fNameLenを32bit->16bit(4byte->2byte)に変えたものの同じ戻り値が返る、というものです。
1.
// BoostTest.cpp : アプリケーションのエントリ ポイントを定義します。
//
#include "stdafx.h"
namespace zip
{
using ub2 = uint16_t;
using ub4 = uint32_t;
typedef struct _tagLocalFileHeader
{
ub4 _signature; //0x504b0304
ub2 _verNeeded;
ub2 _bitFlags;
ub2 _lastModTime;
ub2 _lastModDate;
ub4 _crc32;
ub4 _compSize;
ub4 _unCompSize;
ub2 _fNameLen;
ub2 _exFieldLen;
}LocalFileHeader;
typedef struct _tagCentralDirectory
{
ub4 _signature; //0x504b0102
ub2 _VerMadeBy;
ub2 _VerNeeded;
ub2 _bitFlags;
ub2 _method;
ub2 _lastModTime;
ub2 _lastModDate;
ub4 _crc32;
ub4 _compSize;
ub4 _unCompSize;
ub4 _fNameLen;
ub4 _exFieldLen;
ub4 _fCommentLen;
ub2 _diskNumberStart;
ub2 _infAtt;
ub4 _exfAtt;
ub4 _offset;
}CentralDirectory;
class zip_entry
{
};
}
int main()
{
auto path = "C:\\Games\\Minecraft\\1.12.2\\ic\\mods\\CutAllSMP_v2.5.2.zip";
return sizeof(zip::CentralDirectory);
}
オフトピック
'BoostTest.exe' (Win32): 'C:\Users\[********]\source\repos\BoostTest\Debug\BoostTest.exe' が読み込まれました。シンボルが読み込まれました。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\ntdll.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\kernel32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\KernelBase.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\vcruntime140d.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\ucrtbased.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\tmumh\20019\AddOn\7.0.0.1137\TmUmEvt.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\psapi.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\shlwapi.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\advapi32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\msvcrt.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\combase.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\user32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\gdi32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\sechost.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\rpcrt4.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\sspicli.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\cryptbase.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\bcryptprimitives.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\imm32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\msctf.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\tmumh\20019\TmMon\2.5.0.2070\tmmon.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
スレッド 0x1d60 はコード 52 (0x34) で終了しました。
スレッド 0x1ba4 はコード 52 (0x34) で終了しました。
スレッド 0x2098 はコード 52 (0x34) で終了しました。
プログラム '[7432] BoostTest.exe' はコード 52 (0x34) で終了しました。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\ntdll.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\kernel32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\KernelBase.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\vcruntime140d.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\ucrtbased.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\tmumh\20019\AddOn\7.0.0.1137\TmUmEvt.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\psapi.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\shlwapi.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\advapi32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\msvcrt.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\combase.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\user32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\gdi32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\sechost.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\rpcrt4.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\sspicli.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\cryptbase.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\bcryptprimitives.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\imm32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\msctf.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\tmumh\20019\TmMon\2.5.0.2070\tmmon.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
スレッド 0x1d60 はコード 52 (0x34) で終了しました。
スレッド 0x1ba4 はコード 52 (0x34) で終了しました。
スレッド 0x2098 はコード 52 (0x34) で終了しました。
プログラム '[7432] BoostTest.exe' はコード 52 (0x34) で終了しました。
// BoostTest.cpp : アプリケーションのエントリ ポイントを定義します。
//
#include "stdafx.h"
namespace zip
{
using ub2 = uint16_t;
using ub4 = uint32_t;
typedef struct _tagLocalFileHeader
{
ub4 _signature; //0x504b0304
ub2 _verNeeded;
ub2 _bitFlags;
ub2 _lastModTime;
ub2 _lastModDate;
ub4 _crc32;
ub4 _compSize;
ub4 _unCompSize;
ub2 _fNameLen;
ub2 _exFieldLen;
}LocalFileHeader;
typedef struct _tagCentralDirectory
{
ub4 _signature; //0x504b0102
ub2 _VerMadeBy;
ub2 _VerNeeded;
ub2 _bitFlags;
ub2 _method;
ub2 _lastModTime;
ub2 _lastModDate;
ub4 _crc32;
ub4 _compSize;
ub4 _unCompSize;
ub2 _fNameLen; //ここ(ub4->ub2)
ub4 _exFieldLen;
ub4 _fCommentLen;
ub2 _diskNumberStart;
ub2 _infAtt;
ub4 _exfAtt;
ub4 _offset;
}CentralDirectory;
class zip_entry
{
};
}
int main()
{
auto path = "C:\\Games\\Minecraft\\1.12.2\\ic\\mods\\CutAllSMP_v2.5.2.zip";
return sizeof(zip::CentralDirectory);
}
オフトピック
'BoostTest.exe' (Win32): 'C:\Users\[*****]\source\repos\BoostTest\Debug\BoostTest.exe' が読み込まれました。シンボルが読み込まれました。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\ntdll.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\kernel32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\KernelBase.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\vcruntime140d.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\ucrtbased.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\tmumh\20019\AddOn\7.0.0.1137\TmUmEvt.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\psapi.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\shlwapi.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\advapi32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\msvcrt.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\combase.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\user32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\gdi32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\sechost.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\rpcrt4.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\sspicli.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\cryptbase.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\bcryptprimitives.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\imm32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\msctf.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\tmumh\20019\TmMon\2.5.0.2070\tmmon.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
スレッド 0x1ca8 はコード 52 (0x34) で終了しました。
スレッド 0x21f8 はコード 52 (0x34) で終了しました。
スレッド 0x23f0 はコード 52 (0x34) で終了しました。
プログラム '[2900] BoostTest.exe' はコード 52 (0x34) で終了しました。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\ntdll.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\kernel32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\KernelBase.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\vcruntime140d.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\ucrtbased.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\tmumh\20019\AddOn\7.0.0.1137\TmUmEvt.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\psapi.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\shlwapi.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\advapi32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\msvcrt.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\combase.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\user32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\gdi32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\sechost.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\rpcrt4.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\sspicli.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\cryptbase.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\bcryptprimitives.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\imm32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\msctf.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'BoostTest.exe' (Win32): 'C:\Windows\SysWOW64\tmumh\20019\TmMon\2.5.0.2070\tmmon.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
スレッド 0x1ca8 はコード 52 (0x34) で終了しました。
スレッド 0x21f8 はコード 52 (0x34) で終了しました。
スレッド 0x23f0 はコード 52 (0x34) で終了しました。
プログラム '[2900] BoostTest.exe' はコード 52 (0x34) で終了しました。