SetPixel関数のmath.h
WindowsXPのノートでVisualC++2008ExpressEditionを使っています。
SetPixel関数で円を描くプログラムで、math.hの問題だと思われる4つのエラーでコンパイルできません。
宣言は
#include<windows.h>
#include<math.h>
ウィンドウプロシージャ内で
switch (msg) {
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
for (i = a - r;i <= a + r; i++) {
x = i;
y = (int)sqrt(pow(r, 2) - pow(x - a, 2)) + b;←96行目
SetPixel(hdc, x, y, RGB(0, 0, 0));
y = (int)-sqrt(pow(r, 2) - pow(x - a, 2)) + b;←98行目
1>c:\documents and settings\REI\my documents\visual studio 2008\projects\setpixel01\setpixel01\setpixel01.cpp(96) : error C2668: 'pow' : オーバーロード関数の呼び出しを解決することができません。(新機能 ; ヘルプを参照)
1> c:\program files\microsoft visual studio 9.0\vc\include\math.h(575): 'long double pow(long double,int)' の可能性があります。
1> c:\program files\microsoft visual studio 9.0\vc\include\math.h(527): または 'float pow(float,int)'
1> c:\program files\microsoft visual studio 9.0\vc\include\math.h(489): または 'double pow(double,int)'
1> 引数リスト '(int, int)' を一致させようとしているとき
同じ内容のエラーが96行目なのが2回、98行目なのが2回出ます。math.hを編集すればいいんでしょうか?gccならコマンドラインから-lmでいいかもしれないんですが。自分の入力ミスはないと思います。
どなたかお分かりになる方、教えていただけないでしょうかm(_ _)m
お礼
ありがとうございました。 大変助かり感謝しています。今後もよろしくお願いします。