| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3838 人关注过本帖
标题:VB进度条控件
只看楼主 加入收藏
maoniu
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2010-4-7
结帖率:57.14%
收藏
 问题点数:0 回复次数:5 
VB进度条控件
现在有一个软件是VB编写的界面,通过调用C语言编写的DLL文件来解压缩文件,本人想用VB进度条控件来显示其解压缩的进度,请问大家我应该怎么做呢?
搜索更多相关主题的帖子: C语言 软件 
2011-05-15 13:35
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:0 
一定得改DLL的源码~你有C解压的原码~而解压时一定是循环动作~再动作最下方加一条回传进度值的过程~
让VB中的进度条即时执行就好~前提是你要知道如何用C写开多执行绪~而进度值的正确算法应该只有写的DLL的本人知道吧~
单执行绪的话也许也可以~试试在回传值后一行加Sleep(10)看看~意思是让C先停一下让VB的跑进度条~试试看啰~

不过能写C一般都是开双执行绪去做的了~这小功能我同事的大程序有包含~有亲自演示给我看过~大概是这样~

其实当时我试问他怎用VB的写多执行绪~结果他说公司多执行绪全都用C写的~在用VB中去呼叫来用~

多执行绪到C版查查也许有~找到记得通知一声~我也想学~

P.S 不过要注意不要传回后跳回的DLL让DLL的循环重新跑一次~记得遇过这状况~保险起见还是开双执行绪吧~

[ 本帖最后由 wube 于 2011-5-15 15:54 编辑 ]

不要選我當版主
2011-05-15 15:48
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:0 
那要怎么样才知道解压的进度?怎么解的我不会,但是进度条就用value属性就可以!

   唯实惟新 至诚致志
2011-05-15 17:20
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:0 
从这句话就可以猜到解压的DLL的不是你写的~那只剩唯一的办法~
就是土法炼钢~准备颗码表~拿个大档案来~一开始解就开始计时~
解完看花多久~你VB中的进度条的进度就依照那时间去算吧~

不要選我當版主
2011-05-15 20:18
maoniu
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2010-4-7
收藏
得分:0 
回复 楼主 maoniu
DLL代码是我自己写的,但是我不知道怎么跟那个季度条联系
2011-05-19 13:03
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:0 
我不清楚的DLL是怎么解压缩的~一般解压缩的过程应该会一直跑一个循环~而在循环的最底下~呼叫一个函数~把现在循环次数的相关资讯传回VB的~让VB中使用该资讯去调整进度条的值~同事给我看的示例~他是新增一个执行绪跑函数去做这个回传的动作~

类似~

for(i=0;i<10;i++)
{
//解压缩档案內容~

每次循环最后呼叫另外一支函数把值回传给VB
}

VB中接收到值后~再看要依照什么规则把进度调填满~

P.S 写DLL的应该会知道解压一个档案要跑几次循环吧~进度值就依照这个数据去处理~

仔细想了一下~或许你的问题在于~虽然知道怎么使用VB中去呼叫自己的DLL~但是DLL未执行完毕之前~不知道怎么把进度值传回来~
所以你是要问回传的那段代码要怎写?

[ 本帖最后由 wube 于 2011-5-19 15:51 编辑 ]

不要選我當版主
2011-05-19 15:41
快速回复:VB进度条控件
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024475 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved