`
javatar
  • 浏览: 1704577 次
  • 性别: Icon_minigender_1
  • 来自: 杭州699号
社区版块
存档分类
最新评论

在BAS文件中调用另一个BAS的方法(动态字节码加载)

阅读更多

在BAS文件中调用另一个BAS的方法
原作者:houjie
[原创]用gvbasic+的run命令实现程序间的跳转.
如下面这几个程序.
程序a
graph:print "ok!"
v$=inkey$:poke 4650,asc(v$)
run "b"
程序b
print chr$(peek(4650))
end
这样,你按的键会打印到屏幕上.
这只是一个小例子.做几个入口,以4650-5100为变量,可以方便的跳转.
我即将推出的游戏就采用了这种手法,几个程序加起来有30k左右,但是速度快多了,不用在为大于9k的程序非得用慢如牛助手而发愁了!
[原创]在纯gvbasic中调用其它程序段的方法。
首先,需要一个基础文件,如:
0 x$="data1":goto 13
1 a$="":b$="":for i=6600 to 15000
2 if peek(i)=65 and peek(i+5)=66 then a=i:goto 4
3 next i
4 return
5 for i=6600 to 15000
6 if peek(i)=245 and peek(i+1)=1 then b=i:goto 8
7 next i
8 return
9 for i=6600 to 15000
10 if peek(i)=100 and peek(i+1)=0 then c=i:goto 12
11 next i
12 return
13 gosub 1:gosub 5:gosub 9:open x$ for random as #1 len=50
14 field #1,50 as y$:for i=1 to (lof(1)-1)/50
15 d=c-52+i*50:e=int(d/256):f=d-e*256
16 poke a+2,f:poke a+3,e:poke a+1,50
17 get #1,i:lset a$=y$
18 next i
19 for i=6600 to 15000
20 if peek(i)=244 and peek(i+1)=1 then u=i:goto 22
21 next i
22 d=int(b-2)/256:e=b-2-d*256:poke u-2,e:poke u-1,d:poke u+2,147
23 goto 100
100 aaaaaaaaaaaaaaaaaaa
110 aaaaaaaaaaaaaaaaaaa
120 aaaaaaaaaaaaaaaaaaa
130 aaaaaaaaaaaaaaaaaaa
500 ......
501 end
如果你想调用多个程序,那么就在501行输入
501 if x$="data1" then clear:x$="data2':goto 13
502 ...
503 end
下面是data生成程序
0 clear:x$="data1":goto 13
1 a$="":b$="":for i=6600 to 15000
2 if peek(i)=65 and peek(i+5)=66 then a=i:goto 4
3 next i
4 return
5 for i=6600 to 15000
6 if peek(i)=245 and peek(i+1)=1 then b=i:goto 8
7 next i
8 return
9 for i=6600 to 15000
10 if peek(i)=100 and peek(i+1)=0 then c=i:goto 12
11 next i
12 return
13 gosub 1:gosub 5:gosub 9:open x$ for random as #1 len=50
14 field #1,50 as y$:for i=1 to (b-c)/50+1
15 d=c-52+i*50:e=int(d/256):f=d-e*256
16 poke a+2,f:poke a+3,e:poke a+1,50
17 lset y$=a$:put #1,i
18 next i
19 clear:end
100 从100行到500行就是程序了。
500 rem
501 end
改动13行就可以生成其他data了。
用这两种方法速度十分快,不会有延迟。也不用建临时文件。

首先是三个搜索,作用是找出纯basic环境下的变量存储地址,第一个搜索是查机型。第二、三个搜索是为了找出行号100和501的位置,载入前找到。将其poke成0是为了方便写入和防止出现行号错误。载入后还原,就可以运行程序了。
如果是定地址存储。那么这样就可以



 
分享到:
评论
5 楼 lwong 2007-03-25  
请您详细的告诉我:lwong0914@163.com[b]
4 楼 lwong 2007-03-25  
还是上面的那段gvb会自己搜索到?
3 楼 lwong 2007-03-25  
是不是叫我自己去网上搜索?
2 楼 lwong 2007-03-25  
三个搜索是指什么呀?
1 楼 lwong 2007-03-25  
  

相关推荐

    2021-2022计算机二级等级考试试题及答案No.17463.docx

    4. **Java 源代码与字节码**:Java程序的源代码(.java文件)编译后会生成对应的字节码文件(.class文件),每个类对应一个字节码文件。答案是正确。 5. **VisualBasic 应用程序加载**:要运行一个VisualBasic应用...

    下载码支持断点续传支持断点续传

    通过解析和处理`IniFile`中的数据,程序可以读取并保存下载进度,当用户需要恢复下载时,`frmResuming.frm`界面会提示输入正确的下载码,然后调用`Stuff.bas`中的函数来继续未完成的下载任务。 总结来说,下载码和...

    二维码生成示例.zip

    在VB6程序中,我们可以创建一个窗体(Frm),并在窗体上放置一个图片控件,然后将生成的二维码图像数据加载到图片控件中显示。 【VB6与DLL交互】 VB6作为Microsoft的老一代编程环境,虽然现在已经被更新的.NET ...

    Source Insight zip

    2. **StdConst.bas**:这是一个基础的常量定义文件,可能包含了Source Insight中的各种内部常量和全局变量,这些常量在程序执行过程中用于设定特定参数或状态,以确保软件的稳定运行。 3. **sourceinsight.chm**:...

    web前端三种常见的通过JS加密文本方式

    2.1.4_jQuery.min.js是jQuery库的压缩版本,它简化了DOM操作和事件处理,但在这个场景中,主要关注的是MD5.js、sha1.js和base64.js这三个文件,它们提供了加密和编码的功能。开发者可以通过引入这些库并调用相应的...

    VB MD5 单向加密源码

    在实际应用中,VB程序员可以导入这个组件,然后调用其提供的方法,例如`ComputeHash`,传入需要加密的字符串,组件会返回一个32位的MD5摘要。需要注意的是,由于MD5的安全性在近年来已被破解,对于高安全性的应用...

    2021-2022计算机二级等级考试试题及答案No.18837.docx

    9. Visual Basic应用程序加载:加载VB程序需要工程文件(.vbp)、窗体文件(.frm)和标准模块文件(.bas)。 10. Access数据库文件格式:Access的数据库文件扩展名为.mdb。 11. 货币数据类型:货币字段通常有固定...

    Python 解码Base64 得到码流格式文本实例

    在解码成功后,调用了一个额外的函数`HexFormat`,该函数将字节串转换为码流格式的16进制串。在`HexFormat`函数中,通过遍历字节串中的每一个字节,将每个字节转换为对应的16进制数,并以每16个字节为一行为单位进行...

    2021-2022计算机二级等级考试试题及答案No.19183.docx

    1. Java 语言中的 `JFileChooser` 类:`javax.swing.JFileChooser` 是Java Swing库中的一个类,用于显示文件选择对话框,让用户选择文件或目录。用户可以通过这个对话框获取文件名、文件路径,但不能直接获取文件...

    网管教程 从入门到精通软件篇.txt

    Axx:ARJ压缩文件的分包序号文件,用于将一个大文件压至几个小的压缩包中(xx取01-99的数字) A3L:Authorware 3.x库文件 A4L:Authorware 4.x库文件 A5L:Authorware 5.x库文件 A3M,A4M:Authorware Macintosh...

    计算机基础试题及答案

    - **BACKUP**:用于备份文件到另一个介质,如磁带或另一张磁盘。 - **RESTORE**:从备份介质中恢复文件到原始位置或其他位置。 10. **汉字编码标准** - 国标码(GB2312-80)定义了**一级汉字3755个**,这些汉字...

    VB知识点小结.pdf

    存储在.frm或.Bas文件中。 2. **VB程序的书写规范与注释** - **语句格式**:每个语句由语句定义符和语句体组成,可以使用续行符号“_”或分行符号“:”来分隔。 - **书写规范**:VB不区分字母大小写,建议采用...

    2021-2022计算机二级等级考试试题及答案No.3038.docx

    9. Java源程序编译后生成的是字节码文件,扩展名为`.class`,这是Java虚拟机(JVM)能够识别和执行的格式。 10. 在Windows系统中,要查看“我的电脑”中文档和文件夹的详细信息,可以通过查看菜单选择“详细资料”...

    MD5 Hash Calculator for VB6 (Module)-开源

    在VB6项目中,`basMD5.bas` 文件是一个基本类库模块,它包含了MD5哈希计算的核心代码。开发者可以将此模块导入到他们的VB6工程中,通过调用其中的函数或过程来计算字符串或文件的MD5散列值。通常,这样的模块会包含...

    主机环境汇编指令参考

    在IBM OS/390中,指令的长度是固定的,但可通过前缀字节来扩展其功能或指定不同的寻址方式。边界则指的是数据段或代码段的对齐规则,这有助于提高内存访问效率。 #### 组织与定义指令 - **ORG**:用于指定当前代码...

    基于Visual Basic串口通信VB串口通信UART程序实例源码合集(200个).zip

    VB串口API通讯,附带BAS文件全部源码,实现与饭卡读卡器通讯.rar VB串口与伺服电机DSP2407通讯完整代码源程序.rar VB串口传输文本,实现2台PC间的通信,类似简单的聊天工具.rar VB串口字节通信程序,包

    全国计算机二级考试试题题库附答案剖析.pdf

    计算机二级考试是其中的一个级别,主要考核应试者使用某种高级语言编程的能力。 2. 操作系统知识:包括文件系统的目录结构、文件命令(如COPY、TYPE、MD、RD等)和文件类型(如.BAS、.C、.FOR等)的处理。例如: -...

    MySQL 5.1中文手冊

    在同一个数据库中创建多个表的缺陷 7.5. 优化MySQL服务器 7.5.1. 系统因素和启动参数的调节 7.5.2. 调节服务器参数 7.5.3. 控制查询优化器的性能 7.5.4. 编译和链接怎样影响MySQL的速度 7.5.5. MySQL如何使用内存 ...

    mysql官方中文参考手册

    在同一个数据库中创建多个表的缺陷 7.5. 优化MySQL服务器 7.5.1. 系统因素和启动参数的调节 7.5.2. 调节服务器参数 7.5.3. 控制查询优化器的性能 7.5.4. 编译和链接怎样影响MySQL的速度 7.5.5. MySQL如何使用内存 ...

    MYSQL中文手册

    在同一个数据库中创建多个表的缺陷 7.5. 优化MySQL服务器 7.5.1. 系统因素和启动参数的调节 7.5.2. 调节服务器参数 7.5.3. 控制查询优化器的性能 7.5.4. 编译和链接怎样影响MySQL的速度 7.5.5. MySQL如何使用...

Global site tag (gtag.js) - Google Analytics