登录社区:用户名: 密码: 忘记密码 网页功能:加入收藏 设为首页 网站搜索  

文档

下载

图书

论坛

安全

源码

硬件

游戏
首页 | 信息 | 空间 | VB | VC | Delphi | Java | Flash | 补丁 | 控件 | 安全 | 黑客 | 电子书 | 笔记本 | 手机 | MP3 | 杀毒 | QQ群 | 产品库 | 分类信息 | 编程网站
  立华软件园 - Visual Basic 专区 - 技术文档 - 其他文档 技术文章 | VB源代码 | 电子图书 | VB网站 | 相关下载 | 在线论坛 | QQ群组 | 搜索   
 VB技术文档
  · 窗体界面
  · 系统控制
  · VB.Net
  · 多媒体
  · 网络编程
  · API函数
  · 游戏编程
  · 数据报表
  · 其他文档
 VB源代码
  · 窗体界面
  · 文件目录
  · 多媒体
  · 网络编程
  · 系统API
  · 数据报表
  · 游戏编程
  · VBA办公
  · 其他代码
 VB论坛
  · Visual Basic 讨论区
  · VB.Net 讨论区
  · VB数据库开发讨论区
  · VB系统API讨论区
 其他VB资源
  · VB下载资源
  · VB电子图书
  · VB QQ群组讨论区
  · VB 其他网站资源




从程序中生成Exe文件
发表日期:2004-10-26作者:[转贴] 出处:  

从程序中生成Exe文件
  这篇文章要讨论的是在一个VB程序中如何产生出另一个Exe文件。
  要实现这个目的,必须符合以下几个条件:
    第一、编写这样的程序时,具备欲生成的Exe文件
    第二、事先知道欲生成的Exe文件大小
  其实这两个条件可以说不是条件,但确实很重要。
  为了叙说方便,将发行的程序称作APP-1.Exe,要生成的文件叫APP-2.Exe,以下是具体步骤:

    第一步,准备好APP-2.Exe,这里我使用VB写了一个什么都不做程序,编译成APP-2.Exe。
    第二步,右键单击单击APP-2.Exe,选择属性,记下文件大小。注意,应记下以字节为单位的具体数字,而不是多少k。
    这样就具备了前边说的两个条件。
    第三步,新建工程APP1,新建资源文件加入工程,在资源文件编辑器中添加自定义资源(CUSTOM),资源号使用默认的101。值得注意的是,每个资源号对应的资源项对资源大小的要求是有限制的,我记得时64K,因此如果APP-2.Exe的大小如果大于这个数的话,就要麻烦一些。如果是这样,我们的写另一个程序,把APP-2.Exe一个字节一个字节的读出来,每64K生成一个文件,然后再把这些文件分别写道资源文件的101、102......资源项中,代码也要作相应的修改。

    第四步,为APP-1.Exe编写代码,使其读取资源文件的数据,生成APP-1.Exe。

  代码如下:

  Private Const FILESIZEOFAPP2 = 20480 '我生成的APP-2.Exe大小是20480Byte
  Private Sub cmdOK_Click() '单击按钮cmdOK运行代码
    Dim APP2() As Byte 'APP2是个Btye类型和数组
    Dim Counter As Long
    APP2 = LoadResData(101, "CUSTOM") '将自定义资源中101号资源读入数组
    '注意,微软的帮助中对加载定义资源的说明有误,硬是资源标识为"CUSTOM"而非数字
    If Dir(App.Path & "\APP-2.Exe") <> "" Then '第一次按cmdOK有效
      MsgBox App.Path & "\APP-2.Exe 已经存在!"
      Exit Sub
    End If
    Open App.Path & "\APP-2.exe" For Binary As #1 '以二进制方式写(生成)APP-2.Exe到APP-1.Exe所在的目录
      For Counter = 0 To FILESIZEOFAPP2 - 1 '注意因为从0 Byte开始因此以文件大小 - 1Byte 为终
        Put #1, , APP2(Counter)
      Next Counter
    Close #1
    Shell App.Path & "\APP-2.Exe", vbNormalFocus '运行刚生成的APP-2.Exe
    Unload Me
  End Sub

我来说两句】 【发送给朋友】 【加入收藏】 【返加顶部】 【打印本页】 【关闭窗口
中搜索 从程序中生成Exe文件

 ■ [欢迎对本文发表评论]
用  户:  匿名发出:
您要为您所发的言论的后果负责,故请各位遵纪守法并注意语言文明。

关于我们 / 合作推广 / 给我留言 / 版权举报 / 意见建议 / 广告投放 / 友情链接  
Copyright ©2001-2006 Lihuasoft.net webmaster(at)lihuasoft.net
网站编程QQ群   京ICP备05001064号 页面生成时间:0.00214