vb 获取资源文件内资源的大小

2楼的这位兄弟,为了以防万一我做了个测试的程序,我把IE8加入资源,做测试,但是一单击开始释放,整个程序成假死状态,进度条也是不互动的,标题栏显示XXXXX(没有响应)字... 2楼的这位兄弟,为了以防万一我做了个测试的程序,我把IE8加入资源,做测试,但是一单击开始释放,整个程序成假死状态,进度条也是不互动的,标题栏显示XXXXX(没有响应)字样,但是文件始终还是在释放的,这个是怎么回事???
要怎么办???
展开
 我来答
c20090218
2010-08-04 · TA获得超过256个赞
知道答主
回答量:161
采纳率:0%
帮助的人:201万
展开全部
释放的进度?我猜是写文件的进度吧。

Dim TotalLen As Long
Dim Cont() As Byte
Cont=LoadResData(101,"CUSTOM")
TotalLen=UBound(Cont())
Open FILENAME For Binary As #1
Dim Counter As Long
For Counter=1 To TotalLen
Put #1,Cont(Counter)
ProgressBar1.Value=ProgressBar1.Min+(ProgressBar1.Max-ProgressBar.Min+1)*Counter/TotalLen
Next Counter
Close #1
ProgressBar1.Value=ProgressBar1.Max '为了纠正一些错误,比如99.99%而显示不满,直接设成最大值

修改之后:

Option Explicit

Private Sub Command1_Click()
Dim TotalLen As Long
Dim Cont() As Byte
Cont = LoadResData(101, "CUSTOM")
TotalLen = UBound(Cont())
Open App.Path & "\AITOOL.DLL" For Binary As #1
Dim Counter As Long
Dim Prg As Single
For Counter = 1 To TotalLen
Put #1, , Cont(Counter)
Prg = ProgressBar1.Min + Format((ProgressBar1.Max - ProgressBar1.Min) * Counter / TotalLen, "0.0")
If ProgressBar1.Value <> Prg Then ProgressBar1.Value = Prg
DoEvents
Next Counter
Close #1
ProgressBar1.Value = ProgressBar1.Max
End Sub

这段代码有效地防止了闪屏(进度条狂闪)和无响应问题(DoEvents 语句),个人测试 AITOOL.DLL(112 KB)无问题。
不过注意,复制之后的文件似乎缺失了一些信息……复制一个 EXE 文件就知道了。记住要用 CMD 调用。
Teletypes
2010-07-26 · TA获得超过4909个赞
知道大有可为答主
回答量:8586
采纳率:49%
帮助的人:3048万
展开全部
UBound(LoadResData(101, "CUSTOM"))
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式