下面要用 vc 做一个最精简的 win32 程序,请不要见笑,可以用来做框架嘛!
第一阶段:
精简的代码不多,见下面源程序
// filename: winmain.cpp
//指定下一句为加快编译速度
#define win32_lean_and_mean // say no to mfc !!
#include <windows.h>
int winapi winmain ( hinstance hinstance,
hinstance hprevinstance,
lpstr lpcmdline, int ncmdshow ) // 参数是固定格式,没办法省略
{
// 如果想证明程序做过什么,去掉下面的 双斜杠,(太基本) 不多说了。
// messagebox( null, " hello world ", "simple_code by temp77", mb_ok );
exitprocess(0);
return null; // 为了完整而保留,不要也没错
}
用向导开一个空的 win32 工程,加到里面去就是了,编译一下, 0 error(s), 0 warning(s)。
第一阶段完
第二阶段:
( 以下讲的内容我从网上一篇文章找来,对我很有用。)
既然是最精简的程序,现在还有什么不够呢?哦,对了,是体积太大了,你可以想象几乎什么都不做的程序有 28k 吗?
于是准备对程序的工程文件动手术吧。
先去掉 debug 属性,方法在菜单栏的 ( build -> configurations... 里面 ) 将 ( win32 debug ) remove 掉。
再重设 link 设定,方法在菜单栏的 ( project -> settings... 里面 ) ,选中 link 选项卡。
在 " ignore all default libraries " 前的选项里打勾,又把 " object/library modules: " 下编辑框里的一大串全部删掉,重新填上 " kernel32.lib user32.lib msvcrt.lib " ( 手术进行中... )
最后,看到 " project options: " 下的编辑框没有,是不是有长长的一大串呢?不过,请不要删除它,只在最后追加一个空格,然后填上 " /align:4096 " 就可以声明最小的节大小了。( 手术完成 )
编译它看看,( oh,多了一个 warning ,不管了 ) 实际生成的可执行文件有多大呢?对,你没有看错,是 3k !
好了,第二阶段结束。
本文对一些人有用,另一些则没用! 2002年9月27日 pm 5:42