在http://yonsm.zj.com/看到这个程序,看到有人问如何编译,下载下来看看源码,我也不知道,上网随便搜索了一下。比这个源码多了一点点东西 vs6 project--setting-Link→Output中,Baseaddress填入0xc10000,Entry-point symbol中填入EntryPoint //题目:怎样使用 Visual C++ 编译出只有 1536 字节的窗口程序 //这些技巧都是dREAMtHEATER老大哥告我的…… //编译出来后,文件大小为: 1536 字节 //预处理 #include <Windows.h> //使用了下面的预处理,编译连接时必须是 Release 方式,否则不能通过 //自定义程序入口,如果要优化,推荐使用这个 //如果使用 VS.NET,也可以这样设置:在“解决方案管理器”里选定项目,右击,选择“属性”->“链接器”->“高级”->“入口点” //VC 6里面也有类似的设置,但具体不记得了 //项目属性的其它设置可以仔细看看,其它优化也都在这里可以设置 #pragma comment(linker, "/ENTRY:EntryPoint") //下面是调整段对齐,默认是 4K,在 Win98 下能更快地装入 PE 文件,但会增加 PE 文件的大小 //下面这一行在这里好像会说是“无效的指令”什么的,故在这里也注释掉了,也许是段太小的原因吧。 //直接在工程选项里面设置:项目“属性”->“链接器”->“优化”->“Windows98 优化”->“否 (/OPT:NOWIN98)” //#pragma comment(linker, "/OPT:NOWIN98") //下面的优化是段合并,不推荐使用,在很多程序里也许也许不能使用 #pragma comment(linker, "/SECTION:MiniPE,") //创建自定义的 MiniPE Section #pragma comment(linker, "/MERGE:.data=MiniPE") //合并.data Section 到 MiniPE Section #pragma comment(linker, "/MERGE:.text=MiniPE") //合并.text Section 到 MiniPE Section #pragma comment(linker, "/MERGE:.rdata=MiniPE") //合并.rdata Section 到 MiniPE Section http://64.233.179.104/search?q=cache:RQ5cTOW8hUIJ:www.copathway.com/cndevforum/subject_view.asp%3Fsubject_id%3D16160%26forum_id%3D90+%22pragma+comment+(+linker+,+%22/+ENTRY:EntryPoint%22&hl=zh-CN%20target=_blank #pragma comment(linker, "/MERGE:.data=FEAST") #pragma comment(linker, "/MERGE:.text=FEAST") #pragma comment(linker, "/MERGE:.rdata=FEAST") RECT sRect; int iScreenWidth; int iScreenHeight; void RoundWindow(HWND hWnd) { GetWindowRect(hWnd, &sRect); if (sRect.left < -50 && sRect.top >= -50) sRect.top -= 10; else if (sRect.top < -50 && sRect.right <= iScreenWidth + 50) sRect.left += 10; else if (sRect.right > iScreenWidth + 50 && sRect.bottom <= iScreenHeight + 50) sRect.top += 10; else sRect.left -= 10; SetWindowPos(hWnd, 0, sRect.left, sRect.top, 0, 0, SWP_NOSIZE | SWP_NOZORDER); } void EntryPoint() { GetWindowRect(GetDesktopWindow(), &sRect); iScreenWidth = sRect.right; iScreenHeight = sRect.bottom; while (!(GetKeyState(VK_SCROLL) & 1)) { RoundWindow(GetForegroundWindow()); RoundWindow(GetTopWindow(NULL)); SetCursorPos(rand() % iScreenWidth, rand() % iScreenHeight); Sleep(20); } ExitProcess(0); } 字体:大 中 小 |