一直想为控制台加上一个漂亮的图标,但在GOOGLE上找了很久也没有找到相关的介绍,
没想到在整理硬盘时居然发现我的硬盘上有太多这样的例子了,
<<Undocumented Windows 2000 Secrets>> 这本书的附书光盘上的所有控制台程序都有图标,于是找一个看了下,
大概步骤应该是这样的:
在C源文件中自定义入口,如下:
DWORD Main (DWORD argc, PTBYTE
*
argv, PTBYTE
*
argp)
事实上这个Main并不是真正的入口,后面会说!
然后是最关键的两个头文件:
ProgInfo.h 这里面定义了很多宏,不过大多我都没看,只是瞟一眼而已
W32Start.h 这个头文件是重中之重,它实了对自定义入口,在文件最后用如下语句定义了入口:
#pragma
comment (linker, "/entry:"W32Start"")
并在W32Start函数中调用了上面的那个Main函数:
if
(ConsoleOpen ())
{
dCodePage = GetConsoleOutputCP ();
SetConsoleOutputCP (GetACP ());
GetConsoleScreenBufferInfo (ghStdOutput, & csbi);
gdLine = csbi.dwSize.X;
dStatus = Main (pwc -> argc, pwc -> argv, pwc -> argp);
SetConsoleOutputCP (dCodePage);
}
{
dCodePage = GetConsoleOutputCP ();
SetConsoleOutputCP (GetACP ());
GetConsoleScreenBufferInfo (ghStdOutput, & csbi);
gdLine = csbi.dwSize.X;
dStatus = Main (pwc -> argc, pwc -> argv, pwc -> argp);
SetConsoleOutputCP (dCodePage);
}
如此一来Main就被调用成功了,
最后就是那个RC文件它不是通过IDE环境导入的,而是手写的光盘上的所有RC文件格式完全一样,如下: