|
_hypot 을 hypot 으로 변경하신 뒤 실행해 보세요.
볼랜드쪽 math.h 에서 약간의 변화가 있었던것 같습니다.
cuperido
초야 님이 쓰신 글 :
: 빌더X로 했고요
: 이부분이 문제의 부분
:
: fRadius = _hypot(cxClient / 2.0, cyClient / 2.0); //call to undefined function "_hypot"
:
: 요로콤 안돼욧 아시분은 도와주세욧
:
:
: 문제의 소스
: #include <windows.h>
: #include <math.h>
:
: #define TWO_PI (2.0 * 3.14159)
:
: LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
:
: int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR szCmdLine,int iCmdShow)
: {
: static TCHAR szAppName[] = TEXT("Clover");
: HWND hwnd;
: MSG msg;
: WNDCLASS wndclass;
:
: wndclass.style = CS_HREDRAW | CS_VREDRAW;
: wndclass.lpfnWndProc = WndProc;
: wndclass.cbClsExtra = 0;
: wndclass.cbWndExtra = 0;
: wndclass.hInstance = hInstance;
: wndclass.hIcon = LoadIcon(NULL,IDI_APPLICATION);
: wndclass.hCursor = LoadCursor(NULL,IDC_ARROW);
: wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH);
:
: if(RegisterClass(&wndclass))
: {
: MessageBox(NULL,TEXT("This program required Window NT"),szAppName,MB_ICONERROR);
: return 0;
: }
:
: hwnd = CreateWindow(szAppName,TEXT("Draw a Clover"),WS_OVERLAPPEDWINDOW,
: CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,
: NULL,NULL,hInstance,NULL);
:
: ShowWindow(hwnd,iCmdShow);
: UpdateWindow(hwnd);
:
: if(GetMessage(&msg,NULL,0,0))
: {
: TranslateMessage(&msg);
: DispatchMessage(&msg);
: }
: return msg.wParam;
: }
:
:
: LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
: {
: static HRGN hRgnClip;
: static int cxClient,cyClient;
: double fAngle,fRadius;
: HCURSOR hCursor;
: HDC hdc;
: HRGN hRgnTemp[6];
: int i;
: PAINTSTRUCT ps;
:
: switch(message)
: {
: case WM_SIZE:
: cxClient = LOWORD(lParam);
: cyClient = HIWORD(lParam);
:
: hCursor = SetCursor(LoadCursor(NULL,IDC_WAIT));
: ShowCursor(TRUE);
:
: if(hRgnClip)
: DeleteObject(hRgnClip);
:
: hRgnTemp[0] = CreateEllipticRgn(0,cyClient / 3, cxClient / 2, 2 * cyClient / 3);
:
: hRgnTemp[1] = CreateEllipticRgn(cxClient / 2 ,cyClient / 3,
: cxClient / 2, 2 * cyClient / 3);
: hRgnTemp[2] = CreateEllipticRgn(cxClient / 3,0, 2 * cxClient / 3,cyClient / 2);
:
: hRgnTemp[3] = CreateEllipticRgn(cxClient / 3,cyClient / 2,
: 2 * cxClient / 3,cyClient / 2);
: hRgnTemp[4] = CreateRectRgn(0,0,1,1);
: hRgnTemp[5] = CreateRectRgn(0,0,1,1);
: hRgnClip = CreateRectRgn(0,0,1,1);
:
: CombineRgn(hRgnTemp[4],hRgnTemp[0],hRgnTemp[1],RGN_OR);
: CombineRgn(hRgnTemp[5],hRgnTemp[2],hRgnTemp[3],RGN_OR);
: CombineRgn(hRgnClip, hRgnTemp[4],hRgnTemp[5],RGN_XOR);
:
: for(i = 0; i< 6; i++)
: DeleteObject(hRgnTemp[i]);
:
: SetCursor(hCursor);
: ShowCursor(FALSE);
: return 0;
:
: case WM_PAINT:
: hdc = BeginPaint(hwnd,&ps);
: SetViewportOrgEx(hdc,cxClient / 2,cyClient / 2,NULL);
: SelectClipRgn(hdc,hRgnClip);
:
: fRadius = _hypot(cxClient / 2.0, cyClient / 2.0);
:
: for(fAngle = 0.0; fAngle < TWO_PI; fAngle += TWO_PI / 360)
: {
: MoveToEx(hdc,0,0,NULL);
: LineTo(hdc,(int)(fRadius * cos(fAngle) + 0.5),
: (int)(fRadius * sin(fAngle) + 0.5));
: }
: EndPaint(hwnd,&ps);
: return 0;
:
: case WM_DESTROY:
: DeleteObject(hRgnClip);
: PostQuitMessage(0);
: return 0;
: }
: return DefWindowProc(hwnd,message,wParam,lParam);
: }
:
:
|