回 帖 发 新 帖 刷新版面

主题:[讨论]在VC下的第一个API(回复都有分)

以下是在VC下编的第一个API,因为对VC环境不熟悉,所以有些问题,希望大虾们帮忙看看:
步骤1:新建->工程->Win32 Application,工程名为wnd(是不是API程序都要在这种设置下进行?)
步骤2:在随后出现的对话框中选择了A simple Win32 application选项(不知道选哪一个,随便选的)

步骤3:在给出的wnd.cpp文件中的
int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
函数内添加了以下代码:
MSG msg;
if (!hPrevInstance)
     if(!InitApplication(hInstance)) return FALSE;
if (!InitInstance(hInstance,ncmdShow)) return FALSE;
while(GetMessage(&msg,NULL,NULL,NULL))
{TranslateMessage(&msg);
  DispatchMessage(&msg);

步骤4:在给出的StdAfx.cpp文件中添加了以下代码:
BOOL InitApplication(HANDLE hInstance)
{WNDCLASS w;
w.style=NULL;
w.lpfnWndProc=WndProc;
w.cbClsExtra=0;
w.cbWndExtra=0;
w.hInstance=hInstance;
w.hIcon=LoadIcon(NULL,IDI_APPLICATION);
w.hCursor=LoadCursor(NULL,IDC_ARROW);
w.hbrbackground=GetStockObject(WHITE_BRUSH);
w.lpszMenuName=NULL;
w.lpsaClassName="Simple";
return (RegisterClass(&w));}

BOOL InitInstance(HANDLE hInstance,int nCmdShow)
{HWND hWnd;
hWnd=CreateWindow("Simple",
                   "Simple Example",
                   WS_OVERLAPPEDWINDOW,
                   CW_USEDEFAULT,
                   CW_USEDEFAULT,
                   CW_USEDEFAULT,
                   CW_USEDEFAULT,
                   NULL,
                   NULL,
                   hInstance,
                   NULL);
if(!hWnd) return FALSE;
ShowWindow(hWnd,nCmdShow);
UpdateWindow(hWnd);
return TRUE;}

long FAR PASCAL WndProc(HWND hWnd,unsigned message,WORD wParam,LONG lParam)
{switch(message)
{case WM_DESTORY:PostQuitMessage(0);break;
  default:return DefWindowProc(hWnd,message,wParam,lParam);}
return NULL;}

步骤5:编译wnd.cpp文件
经过上述步骤编译出现问题:
fatal error C1083: Cannot open precompiled header file: 'Debug/wnd.pch': No such file or directory
Error executing cl.exe.
wnd.obj - 1 error(s), 0 warning(s)
请高手们指正我的错误,非常感激~~~~~
[em18]

回复列表 (共6个回复)

沙发

有没包含<windows.h>头文件

板凳

A simple Win32 application中应该自动包含windows.h了吧,是不是你把StdAfx删了?

3 楼

有没包含<windows.h>头文件

4 楼

rebuild the project

5 楼

API是最基本的,比mfc还低,应该保含吧

6 楼

回复了.怎么没分呢?

我来回复

您尚未登录,请登录后再回复。点此登录或注册