加载中
加载中
表情图片
评为精选
鼓励
加载中...
分享
加载中...
文件下载
加载中...
修改排序
加载中...
解决发布VB程序时携带大量ocx、dll文件的问题
ldc2009/02/16软件综合 IP:湖南
  有时一个使用了复杂控件的VB程序运行需要一些普通WindowsXP没有的ocx或者dll,在发布程序时往往需要将这些文件和exe文件一起打包,让一些程序看起来很不清爽,可不可以让我们的程序都只有一个exe文件没有其它的东西呢?
  其实VB程序可以包含各种资源文件,这就为创建一个只有exe文件的程序提供了可能。但当我尝试将ocx、dll以资源文件的形式包含在exe文件中,当程序运行的时候尝试释放时又遇到一个问题,程序加载窗体时因为没找到支持文件而出错中断,没等到释放文件就崩溃了。为了解决这个问题,我们需要在加载窗体之前执行一个main过程,释放ocx、dll等文件。
以我写的UDPFighter为例,本程序需要一个MSCOMCTL.OCX和一个MSWINSCK.OCX,将这两个文件添加为资源文件。
1.jpg
创建一个标准模块,并在其中写一个main过程。代码如下:
'UnRes和TeShuML为自己写的函数,详见源文件
Sub main()
If Dir(TeShuML(37) & "\MSCOMCTL.OCX") = "" Then
    Call UnRes(101, "CUSTOM", TeShuML(37) & "\MSCOMCTL.OCX")   '释放文件
  Sleep 500
End If
If Dir(TeShuML(37) & "\MSWINSCK.OCX") = "" Then
    Call UnRes(102, "CUSTOM", TeShuML(37) & "\MSWINSCK.OCX")   '释放文件
  Sleep 500
End If
Form1.Show   '加载并显示窗体
End Sub
将启动对像设为Sub main()
2.jpg
编译程序后就可以实现仅用一个exe文件了。
+738  科创币    chiataimakro    2009/02/16 极富意义
来自:计算机科学 / 软件综合
4
 
新版本公告
~~空空如也
ldc 作者
16年5个月前 IP:未同步
76017
源文件

attachment icon 网络攻击器_KC.rar 1020.51KB RAR 88次下载
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
csakura
16年5个月前 IP:未同步
76900
就是把引用的DLL放到资源里。。。

不过我觉得这样做更好。
把资源压缩一下,然后运行的时候解压出来。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
fw。
16年5个月前 IP:未同步
76903
RLPack=LS+LZ
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
noname剑人
16年0个月前 IP:未同步
130111
引用第3楼fw。于2009-02-21 21:13发表的  :
RLPack=LS+LZ

好像真有RLPACK...
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
上级专业
同级专业
ldc
学者 机友 笔友
文章
75
回复
768
学术分
34
2005/10/01注册,29天22时前活动
暂无简介
主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:未同步
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的