みなさんお久しぶりです。
最近「book off」でプログラムはなぜ動くのかという本を買いました。
まぁそんなことはどうでもいいのですが・・
その本に載っているプログラムでコンパイルできないものがあります。
コンパイルしようとすると
エラー E2040 window.c 10: 宣言が正しく終了していない(関数 WinMain )
エラー E2027 window.c 16: メモリ上に配置されなければならない(関数 WinMain )
警告 W8008 window.c 26: 条件が常に真(関数 WinMain )
警告 W8066 window.c 32: 実行されないコード(関数 WinMain )
エラー E2277 window.c 34: 左辺値が必要(関数 WinMain )
警告 W8057 window.c 42: パラメータ 'hInstance' は一度も使用されない(関数
WinMain )
警告 W8057 window.c 42: パラメータ 'hPrevInstance' は一度も使用されない(関数
WinMain )
警告 W8057 window.c 42: パラメータ 'lpCmdLine' は一度も使用されない(関数
WinMAin)
警告 W8057 window.c 42: パラメータ 'nCmdShow' は一度も使用されない(関数
WinMain)
とでます。
本とよく見比べたのですがたぶん相違はないと思います。
どこが悪いのかご指導よろしくお願いしますm(_ _)m
↓↓ ソース ↓↓
<window.c>
#include "windows.h"
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow )
{
float f;
unsigned long 1;
int i;
char s[80];
f = (float)0.75;
memcpy(&1, &f, 4);
for (i = 33; i >= 0; i--)
{
if ((i == 1) || (i == 10))
{
s = '-';
}
else
{
if (1 % 2 == 1)
{
s = '1';
}
else
{
s = '0';
}
1 /= 2;
}
}
s[34] = '\0';
MessageBox(NULL, s, "単精度浮動小数点数の表し方", MB_OK);
return 0;
}
長くなってスミマセンm(_ _)m
P.S
管理人さん、かなり遅れてですが「50万」突破おめでとうございます。(^\^)
WinMain関数が・・・
Re:WinMain関数が・・・
エラーメッセージ読めば,ある程度場所の推測がつきそうな物ですが……。
10行目,26行目,32行目の元のコードは数字の1ではなくLの小文字のlではないですか?
# 26行目は%の前にある1の方。
ついでに,
> #include "windows.h"
を
#include <windows.h>
に,
> int APIENTRY WinMain
を
int WINAPI WinMain
にした方がWindows SDKの記述に合わせることができます。
それから,
> f = (float)0.75;
はキャストの誤用なので,
f = 0.75f;
とすべきです。
10行目,26行目,32行目の元のコードは数字の1ではなくLの小文字のlではないですか?
# 26行目は%の前にある1の方。
ついでに,
> #include "windows.h"
を
#include <windows.h>
に,
> int APIENTRY WinMain
を
int WINAPI WinMain
にした方がWindows SDKの記述に合わせることができます。
それから,
> f = (float)0.75;
はキャストの誤用なので,
f = 0.75f;
とすべきです。