首页 Soft PlugIn RAN乱 Dev开发 Info资料 English WAP 留言 登陆 注册
-
Posted by Yippee | 评论(0) | 引用(0) | 阅读3304次
自定义VC程序入口点

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);
}


字体:

Permanant URI永久地址 http://www.shengfang.org/blog/p/2005041301.php
Trackback URI引用地址 http://www.shengfang.org/blog/tb.php?tb_id=1113380483

2005年4月13日16:21星期三  [Info资料] 追踪此文的RSS
提示:
此文还没有评论。

称呼:    登陆   注册
   不注册,但记住我的信息
邮件:
(非必须)
评论: [UBB代码帮助]
粗体 斜体 下划线 链接 水平线 引用



验证码: 请输入你看见的数字
关闭UBB      提交时自动将内容复制到剪贴板

公告
Fire and Motion!

统计信息
[Yippee]||[统计]||日志:1790
在线: 12||用户: 2563 [列表]
今日:565||到访:2682204
Rss:841940||评论:1585

最新日志

最新评论

友情链接

日历

最新引用

搜索

归档

杂项
Get RSS Feed (Version 2.0)
Get Atom Feed (Version 0.3)
编码:  UTF-8