| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 627 人关注过本帖
标题:[原创]程序升级技术
只看楼主 加入收藏
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
结帖率:78.95%
收藏
 问题点数:0 回复次数:3 
[原创]程序升级技术

我们玩网络游戏的时候,是不是有内测,公测的...
就是说一个版本的升级...我们完成这个升级只是下载回来一些升级文件回来..
而不必又重新下载整个游戏.这是怎么做到呢...可以用dll技术....
把一些功能做成dll..
我下面演示一下......
先新建一个dll,dll的名称为NeiCheBan
Private str_ As String

Property Get Str() As String
Str = str_
End Property

Property Let Str(NewValue As String)
str_ = NewValue
End Property

Public Function StrAdd() As String
StrAdd = "内测版:" & Str
End Function
好了..我们保存程序先...之后生成这个dll
下面我们关闭这个dll工程先...建立一个标准的工程...加上一个commnadbutton控件,
在菜单-工程-引用-浏览 找到我们刚才写的dll
Dim CheShi As NeiCheBan '引用我们刚才写的dll
Private Sub Command1_Click()
Set CheShi = New NeiCheBan
CheShi.Str = "这是内测版"
MsgBox CheShi.StrAdd
End Sub
运行..结果是输出:内测版:这是内测版
好的..下面我们开始升级我们的程序..我们要的运行结果是这样的:公测版:这是内测版
我们只要改我们的dll工程就行了...
打开先前的dll工程
Private str_ As String

Property Get Str() As String
Str = str_
End Property

Property Let Str(NewValue As String)
str_ = NewValue
End Property

Public Function StrAdd() As String
StrAdd = "公测版:" & Str 'StrAdd = "内测版:" & Str 这是先前的..我们现在改成这样

End Function

保存工程,重新生成dll

好的..我们关闭这个工程..打开我们先前建立的标准工程,,打开之后不用改什么代码..只要重新生成就行了.
好的现在运行下我们生成的程序...看到结果了吧..呵呵...
我们只需要把这个重新生成的dll和可执行文件发给客户就行了...而不用又重新打包..把整个程序重新发给客户....
下面是附件.



JcmCLxN3.rar (10.41 KB) [原创]程序升级技术


搜索更多相关主题的帖子: 技术 
2007-04-21 20:37
Joforn
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1242
专家分:122
注 册:2007-1-2
收藏
得分:0 

一般我做的程序都只有一个Exe文件,有什么办法可以在程序中升级?


VB QQ群:47715789
2007-04-22 09:50
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
收藏
得分:0 

Joforn兄的意思是?
不是很明白...怎么会只有一个exe呢...
我所知的升级的方法就是写dll
像可以把api写成dll,然后在程序中引用...
但后来你发现你这个你的程序少了些功能.或有错.只要修改dll就行了..
像把GetCursorPos做成dll..源码如下
Private Declare Function GetCursorPos Lib "user32" (lpPoint As pointapi) As Long

Private Type pointapi
X As Long
Y As Long
End Type
Dim pos As pointapi

Property Get PosX() '属性
PosX = pos.X
End Property
Property Get PosY()
PosY = pos.Y
End Property

Public Function CurrsorPos() As Long '这是dll的接口
GetCursorPos pos
End Function

但后来你想改进一下这个程序...把PosX 这个只读属性改成PosX = pos.X+10
之后重新生成dll和重新生成主程序序给客户就行了...
虽然你的程序只有一个exe..但这样做也有好处..因为不用去修改主文件...
因为那很麻烦...当你在深长的程序的时候找一个要改的地方时是不是很麻烦...如果改错了...更麻烦


/images/2011/147787/2011051411021524.jpg" border="0" />
2007-04-22 10:12
jaychang
Rank: 1
等 级:禁止访问
帖 子:148
专家分:0
注 册:2007-5-3
收藏
得分:0 
嗯,不错不错

http://bbs.    编程GIS论坛
交流软件开发技术与GIS技术
2007-05-03 23:22
快速回复:[原创]程序升级技术
数据加载中...
 
   



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

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