新手求教大神vb6问题

lbc0405 2023-10-05 15:33:28

 

 

 

第一张图是我在vb6编程环境下运行生成的图片。

第二张氏我生成exe文件后运行生成的图片。

为什么会出现这种现象?是哪里出现问题?

怎么解决? 

多谢!!!

...全文
497 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
lbc0405 2023-10-05
  • 打赏
  • 举报
回复

img


新建了一个程序写入如下代码:
Dim a As Single
Dim b As Single

Private Sub Form_Load()
Dim totaltime As Integer

totaltime = 10

a = (Picture1.ScaleWidth - 1600) / totaltime
b = (11355 - 1600) / totaltime

Label1(0).Caption = a
Label1(1).Caption = b
End Sub

发现当采用a的时候在运行环境下a=975.5 而生成exe文件后运行exe文件a=1135.5(Picture1.ScaleWidth=11355)
vb并没有进行计算。

有大神知道是怎么回事么?

milaoshu1020 活跃的高手 2023-10-14
  • 举报
回复
@lbc0405 在你的代码中,问题似乎与VB6中的默认数据类型有关。在VB6中,默认的数据类型是`Double`,而不是`Single`,这可能导致在生成EXE文件时出现不同的行为。 为了确保数据类型一致,你可以显式指定变量的数据类型为`Single`,并使用`CSng`函数将计算结果转换为`Single`。下面是修改后的代码: ```vb Dim a As Single Dim b As Single Private Sub Form_Load() Dim totaltime As Integer totaltime = 10 a = CSng((Picture1.ScaleWidth - 1600) / totaltime) b = CSng((11355 - 1600) / totaltime) Label1(0).Caption = a Label1(1).Caption = b End Sub ``` 在这个修改后的代码中,我们使用了`CSng`函数将计算结果显式转换为`Single`,以确保数据类型一致性。这应该可以解决在生成EXE文件时出现的问题。

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧