目录
1 简单的Windows API代码示例... 1
2 安装环境与分析... 1
3 设置为当前DOS窗口环境系统变量... 2
配置信息... 2
设置信息... 3
4 运行效果... 3
设置系统环境变量信息... 3
NMAKE编译... 3
CL编译... 5
5 小结... 5
1 简单的Windows API代码示例
/*--------------------------------------------------------------HelloMsg.c -- Displays "Hello, Windows 98!" in a message box (c) Charles Petzold, 1998 --------------------------------------------------------------*/ #include <windows.h> int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { MessageBox (NULL, TEXT ("Hello, Windows 98!"), TEXT ("HelloMsg"), 0) ; return 0 ; }
分析:
- windows.h头文件需要包含
- messagebox 需要包含windows api,需要user32.lib,在C:\WINDOWS\system32,其中包含了ulib.dll、user32.lib、kernel32.dll等。
编译时,系统自动寻找user32.lib,代码需要以下写法:
#include <windows.h>
#pragma comment(lib,"user32.lib")
编译时,手动添加,则编译时需要以下写法:
cl hellomsg.c user32.lib
- 代码运行示例
NMAKE运行:
nmake hellomsg.mak
CL运行:
cl hellomsg.c user32.lib
2 安装环境与分析
不安装Microsoft Platform SDK,因为安装VS2008专业版本(非EXPRESS版本的)已经包含了Microsoft Platform SDK与编译器,因不使用Microsoft Platform SDK都可以编译C或C++。
安装的VS2008专业版中,C:\Program Files,其中包含了2个文件:
文件名称 |
文件夹内容 |
Microsoft SDKs |
|
微软软件开发工具包(SDK),它提供文档的链接,代码示例,工具,标题,库,和其他文件,开发人员可以使用它来创建软件应用程序和库。 |
|
Microsoft Visual Studio 9.0 |
|
Visual Studio 是微软公司推出的开发环境 |
图1
3 设置为当前DOS窗口环境系统变量
3.1配置信息
需要用DOS窗口编译(如果安装了Microsoft Platform SDK,根据以下配置信息即可更简单编译):
路径 |
文件内容 |
C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin |
|
C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include |
包含windows.h头文件 |
C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib |
编译时需要的SDK的LIB |
C:\Program Files\Microsoft Visual Studio 9.0\VC\bin |
|
C:\Program Files\Microsoft Visual Studio 9.0\VC\include |
|
C:\Program Files\Microsoft Visual Studio 9.0\VC\lib |
|
C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE |
生成*.obj、*.pdb |
3.2设置信息
在DOS窗口运行(在当前窗口,环境系统变量有效;当然也可以通过我的电脑属性值固定它,这里暂不固定):
set path=%ProgramFiles%\Microsoft SDKs\Windows\v6.0A\bin;%ProgramFiles%\Microsoft Visual Studio 9.0\VC\bin;%ProgramFiles%\Microsoft Visual Studio 9.0\Common7\IDE; set include=%ProgramFiles%\Microsoft SDKs\Windows\v6.0A\Include;%ProgramFiles%\Microsoft Visual Studio 9.0\VC\include; set lib=%ProgramFiles%\Microsoft SDKs\Windows\v6.0A\Lib;%ProgramFiles%\Microsoft Visual Studio 9.0\VC\lib;
4 运行效果
4.1设置系统环境变量信息
G:\>set path=C:\WINDOWS\system32;C:\Program Files\Microsoft SDKs\Windows\v6.0A\b in;C:\Program Files\Microsoft Visual Studio 9.0\VC\bin;C:\Program Files\Microsof t Visual Studio 9.0\Common7\IDE; G:\>set include=C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include;C:\Program Files\Microsoft Visual Studio 9.0\VC\include; G:\>set lib=C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib;C:\Program Files\M icrosoft Visual Studio 9.0\VC\lib;
4.2NMAKE编译
G:\>nmake hellomsg.mak Microsoft (R) 程序维护实用工具 9.00.21022.08 版 版权所有 (C) Microsoft Corporation。保留所有权利。 No configuration specified. Defaulting to HelloMsg - Win32 Debug. Warning: cannot find "HelloMsg.dep" if not exist ".\Debug/" mkdir ".\Debug" cl.exe @C:\DOCUME~1\ZHYONG~1\LOCALS~1\Temp\nmB1.tmp cl: 命令行 warning D9035 :“GX”选项已否决,并将在将来的版本中移除 cl: 命令行 warning D9036 :使用“EHsc”而不使用“GX” cl: 命令行 warning D9002 :忽略未知选项“/MLd” cl: 命令行 warning D9002 :忽略未知选项“/YX” HelloMsg.c link.exe @C:\DOCUME~1\ZHYONG~1\LOCALS~1\Temp\nmB2.tmp LINK : warning LNK4044: 无法识别的选项“/pdbtype:sept”;已忽略 G:\>
(因为这里是直接从VS2008 HelloMsg的MakeFile文件直接Copy过来的,所以会出现一些关于在VS2008 运行的waring信息,MakeFile文件大家可以自己写)
打开Debug调试运行HelloMsg:
4.3 CL编译
G:\>cl hellomsg.c user32.lib 用于 80x86 的 Microsoft (R) 32 位 C/C++ 优化编译器 15.00.21022.08 版 版权所有(C) Microsoft Corporation。保留所有权利。 hellomsg.c Microsoft (R) Incremental Linker Version 9.00.21022.08 Copyright (C) Microsoft Corporation. All rights reserved. /out:hellomsg.exe hellomsg.obj user32.lib