プロジェクトにリソースを追加しました。そのサイズは 4.096 バイトです。WriteFile() の 3 番目の引数で必要なため、DWORD に割り当てる必要があります。
WriteFile(hFile, pExeResource,size, &bytesWritten, NULL);
だから私はこのようにキャストします:
UPDATE2: DWORD ブートサイズ = 4096; //それでも警告しますが、この警告が表示されます。私を助けてくれませんか?
これは、地域/言語の違いと C 構文の組み合わせだと思います。
コンマ区切り4.096
を使用するつもりだと思います。4,096
(地域/言語の違いにより、おそらく.
代わりに を使用します,
。)
C/C++ では、区切り記号を使用しません。代わりにこれを行うだけです:
DWORD bootsize = (DWORD)4096;
4.096
は浮動小数点値 ( 型のdouble
) で、4.1 よりわずかに小さいですDWORD
が、 は整数型 (通常は のようなものunsigned int
) です。当然、変換で浮動小数点値の小数部分が失われます。(おそらく、整数値4096
(句読点なし) を意味していましたか?)
4.096
バイトの 4 と 96/1000 です。私はあなたがただ欲しいと思います4096
。その後、キャストする必要はありません。通常、プログラミングでは、実際に小数点として使用する場合を除き、数字にコンマやピリオドを使用しません。