| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2655 人关注过本帖
标题:VB编译错误: 要求常数表达式
只看楼主 加入收藏
leziyi
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2016-10-30
结帖率:85.71%
收藏
 问题点数:0 回复次数:2 
VB编译错误: 要求常数表达式
Public Function GetFile(WinS As Winsock, Optional ByVal FilePath As String = App.Path + "\nn.bmp")

Dim bytData() As Byte
Dim lLenFile As Long
Dim f
f = FreeFile
Open FilePath For Binary As #f 'strFileName是文件名
lLenFile = LOF(f)
ReDim bytData(1 To bytesTotal)
WinS.GetData bytData
If lLenFile = 0 Then 'lLenFile=0表示是第一次打开文件,这里有个问题,就是'如果如果该文件存在的话,就会出错,应该在打开前检查文件是否存在。(这里我省略了)
   Put #f, 1, bytData
Else
   Put #f, lLenFile + 1, bytData
End If
Close #f

End Function
搜索更多相关主题的帖子: VB 常数 表达式 Dim 文件 
2018-11-01 12:26
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
Public Function GetFile(WinS As Winsock, Optional ByVal FilePath As String)

If (FilePath) = "" Then         '如果没传入值
    FilePath = App.Path + "\nn.bmp"     '给默认值
End If


授人于鱼,不如授人于渔
早已停用QQ了
2018-11-01 16:14
ZHRXJR
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:125
帖 子:1034
专家分:5519
注 册:2016-5-10
收藏
得分:0 
Public Function GetFile(WinS As Winsock, Optional ByVal FilePath As String = App.Path + "\nn.bmp")
应该是这个函数有问题,第一个参数 WinS 是按地址传递,而且类型是 Winsock,但没有发现你定义过这个数据类型。
第二个参数 FilePath 是按值传递,是 String 类型,但后面的等号及变量、值在函数中是不容许的,除非你已经定义了这个参数的常数。
Public Function GetFile(WinS As Winsock, Optional ByVal FilePath As String)
一般的做法是在调用函数之前给参数 FilePath 提前赋值。


二楼 风吹过b 的回复也是不错的方法。

请不要选我!!!
2018-11-02 09:48
快速回复:VB编译错误: 要求常数表达式
数据加载中...
 
   



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

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