|
![]() | 作者: ziaichen [ziaichen]
![]() |
登录 |
我在利用windows编程做一 个内接五角星的正五边形的时候,总是编译 没错,而在联接 的时候有这样的错误: LIBCD。lib(crt0.obj):error LNK2001: unresolved external symbol_main DEBUG/0.exe: fatal error LNK1120: 1 unresovled externals ERROR executing link.exe 我利用调试进行检查,但并没有发现错误, 请问这是怎么回事情啊? |
地主 发表时间: 05-07-26 09:15 |
![]() | 回复: 286 [unique] ![]() |
登录 |
源程序呢? |
B1层 发表时间: 05-07-26 09:44 |
![]() | 回复: bassjack [bassjack] ![]() |
登录 |
把Turborc2的文件复制到C:\下再运行。 |
B2层 发表时间: 05-07-28 09:26 |
![]() | 回复: ziaichen [ziaichen] ![]() |
登录 |
不好意思,286大哥,最近比较忙,没有看见你的回帖 程序如下: #include<windows.h> #include<stdlib.h> #include<string.h> #include<math.h> #define Pi 3.1415926 LRESULT WINAPI WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam); BOOL InitWindowsClass(HINSTANCE hInstance); BOOL InitWindows(HINSTANCE hInstance,int nCmdShow); HWND hWndMain; int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrewInstance,LPSTR lpCmdLine,int nCmdShow) { MSG Message; if(!InitWindowsClass(hInstance)) return FALSE; if(!InitWindows(hInstance,nCmdShow)) return FALSE; while(GetMessage(&Message,0,0,0)) { TranslateMessage(&Message); DispatchMessage(&Message); } return Message.wParam; } LRESULT WINAPI WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam) { HDC hDC; HBRUSH hBrush; HPEN hPen; PAINTSTRUCT PtStr; double dfRadious0=100.0,dfRadious1; POINT lpOuterPoints[5],lpInnerPoints[5]; POINT lpTriangle[3]; dfRadious1=dfRadious0*sin(0.1*Pi)/sin(126.0/180*Pi); for(int i=0;i<5;i++) { lpOuterPoints[i].x=(long)(dfRadious0*cos(i*72.0/180*Pi)); lpOuterPoints[i].y=(long)(dfRadious0*cos(i*72.0/180*Pi)); lpInnerPoints[i].x=(long)(dfRadious1*cos(i*72.0/180*Pi+36.0/180*Pi)); lpInnerPoints[i].y=(long)(dfRadious1*cos(i*72.0/180*Pi+36.0/180*Pi)); } switch(iMessage) { case WM_PAINT: hDC=BeginPaint(hWnd,&PtStr); SetMapMode(hDC,MM_ANISOTROPIC); SetWindowOrgEx(hDC,-100,-100,NULL); hPen=CreatePen(PS_SOLID,1,RGB(255,0,0)); SelectObject(hDC,hPen); Polygon(hDC,lpOuterPoints,5); for(i=0;i<5;i++) { lpTriangle[0]=lpOuterPoints[i%5]; lpTriangle[1]=lpOuterPoints[i%5]; lpTriangle[2]=lpOuterPoints[(i+1)%5]; hBrush=CreateSolidBrush(RGB(i*10,i*20,i*30)); SelectObject(hDC,hBrush); Polygon(hDC,lpTriangle,3); lpTriangle[2]=lpInnerPoints[(i+4)%5]; hBrush=CreateSolidBrush(RGB(i*40,i*30,i*20)); SelectObject(hDC,hBrush); Polygon(hDC,lpTriangle,3); } hBrush=CreateSolidBrush(RGB(255,255,255)); SelectObject(hDC,hBrush); Polygon(hDC,lpInnerPoints,5); MoveToEx(hDC,lpOuterPoints[0].x,lpOuterPoints[0].y,NULL); for(i=1;i<=5;i++) { hPen=CreatePen(PS_SOLID,1,RGB(0,i*51,0)); SelectObject(hDC,hPen); LineTo(hDC,lpOuterPoints[(i+2)%5].x,lpOuterPoints[(i+2)%5].y); } hPen=(HPEN)(GetStockObject(PS_NULL)); DeleteObject(hPen); DeleteObject(hBrush); EndPaint(hWnd,&PtStr); return 0; case WM_DESTROY: PostQuitMessage(0); return 0; default: return(DefWindowProc(hWnd,iMessage,wParam,lParam)); } } BOOL InitWindows(HINSTANCE hInstance,int nCmdShow) { HWND hWnd; hWnd=CreateWindow("Polygon", "五边形", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL); if(!hWnd) return FALSE; hWndMain=hWnd; ShowWindow(hWnd,nCmdShow); UpdateWindow(hWnd); return TRUE; } BOOL InitWindowsClass(HINSTANCE hInstance) { WNDCLASS WndClass; WndClass.cbClsExtra=0; WndClass.cbWndExtra=0; WndClass.hbrBackground=(HBRUSH)(GetStockObject(WHITE_BRUSH)); WndClass.hCursor=LoadCursor(NULL,IDC_ARROW); WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION); WndClass.hInstance=hInstance; WndClass.lpfnWndProc=WndProc; WndClass.lpszClassName="Polygon"; WndClass.lpszMenuName=NULL; WndClass.style=0; return RegisterClass(&WndClass); } |
B3层 发表时间: 05-08-04 08:25 |
![]() | 回复: 286 [unique] ![]() |
登录 |
程序没错,但画的好象有问题,只画了一条线。 程序出错的原因是:你的程序是一个FOR win的程序,但你编译的模式是一个for dos的。 解决方案是:VC中先创建一个win application程序,然后再把源程序加进去。就可以通过了。 |
B4层 发表时间: 05-08-04 11:31 |
![]() | 回复: ziaichen [ziaichen] ![]() |
登录 |
谢谢286大哥,的确是一条直线,可是我看程序没有错误啊? |
B5层 发表时间: 05-08-06 08:13 |
![]() | 回复: 286 [unique] ![]() |
登录 |
for(int i=0;i<5;i++) { lpOuterPoints[i].x=(long)(dfRadious0*cos(i*72.0/180*Pi)); lpOuterPoints[i].y=(long)(dfRadious0*cos(i*72.0/180*Pi)); lpInnerPoints[i].x=(long)(dfRadious1*cos(i*72.0/180*Pi+36.0/180*Pi)); lpInnerPoints[i].y=(long)(dfRadious1*cos(i*72.0/180*Pi+36.0/180*Pi)); } 改成 for(int i=0;i<5;i++) { lpOuterPoints[i].x=(long)(dfRadious0*cos(i*72.0/180*Pi)); lpOuterPoints[i].y=(long)(dfRadious0*sin(i*72.0/180*Pi)); lpInnerPoints[i].x=(long)(dfRadious1*cos(i*72.0/180*Pi+36.0/180*Pi)); lpInnerPoints[i].y=(long)(dfRadious1*sin(i*72.0/180*Pi+36.0/180*Pi)); } |
B6层 发表时间: 05-08-08 10:38 |
![]() | 回复: ziaichen [ziaichen] ![]() |
登录 |
哦,原来是这样的啊 谢谢286版主! |
B7层 发表时间: 05-08-08 12:03 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号