网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
11月18日漏签0天
vb吧 关注:156,065贴子:1,166,196
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 8回复贴,共1页
<<返回vb吧
>0< 加载中...

[求助]VB6 能这么干么(急)

  • 只看楼主
  • 收藏

  • 回复
  • tcfree8
  • 啥也不懂
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
function funcTar()
msgbox "111"
end function
function funcCall(a)
call a
endfunction
sub funcMain
dim a
a=funcTar
call funcCall(a)
end sub
意思是 让变量a引用函数,把这个a以参数传递 如果成功 将显示 111,问题是失败啊,如果VB能这么干,那么想引用函数或者将函数以参数传递 代码应该是怎样的???(急,关系整体逻辑)


  • cbm666
  • 子类化
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
'添加 Command1 Command2 Command3
Option Explicit
Dim ColorR&, ColorG&, ColorB& '变量定义与声明
Dim Red&, Green&, Blue&
Dim TmpStr$(2)
Private Sub Form_Load()
Me.Move (Screen.Width - Me.Width) \ 2, (Screen.Height - Me.Height) \ 2
Me.Caption = "函数调用返回示例"
End Sub
'**************** 传址方式返回
Private Sub Command1_Click()
GetRGB1 167215, ColorR, ColorG, ColorB
MsgBox ColorR & " " & ColorG & " " & ColorB
End Sub
Private Sub GetRGB1(ColorVal&, R As Long, G As Long, B As Long)
R = ColorVal Mod 256
G = (ColorVal And vbGreen) / 256
B = (ColorVal And vbBlue) / 65536
End Sub
'***************************************************
'全局变量的方式
Private Sub Command2_Click()
'在最上面通用区定义 Dim Red&, Green&, Blue& 或在.bas模块使用Public宣告
Call GetRGB2(167215)
MsgBox Red & " " & Green & " " & Blue
End Sub
Private Sub GetRGB2(ColorVal&)
Red = ColorVal Mod 256
Green = (ColorVal And vbGreen) / 256
Blue = (ColorVal And vbBlue) / 65536
End Sub
'************************************************************
'数组变量方式返回
Private Sub Command3_Click()
Dim i&, S$()
S = GetRGB3(167215)
For i = 0 To UBound(S)
MsgBox S(i)
Next i
End Sub
Function GetRGB3(ColorVal&) As String()
TmpStr(0) = ColorVal Mod 256
TmpStr(1) = (ColorVal And vbGreen) / 256
TmpStr(2) = (ColorVal And vbBlue) / 65536
GetRGB3 = TmpStr
End Function


2025-11-18 14:29:31
广告
不感兴趣
开通SVIP免广告
  • 张剑冰
  • 多线程
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
function 过程参数按地址传递就行了,这时可以在过程内修改参数值,如果按值传递,就是只读的,不能在过程内改变参数值,大致可以这样理解,不过按地址传送,比按值传送慢。
Byref


  • 笹瀬川佐々美
  • 递归爆栈
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我明确的告诉你,VB不支持这么写
a=funcTar这句等价于a=funcTar()
而且VB也不支持直接传函数....
话说.你之前在用JS么..这满满的JS的感觉


  • 笹瀬川佐々美
  • 递归爆栈
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
function funcTar()
{
alert("111");
}
function funcCall(a){
a();
}
var a=funcTar;
funcCall(a);
顺便补上等价于LZ代码的JS..在JS中这么做是完全可以的,但VB里,完全不行


  • ztw1122
  • 网络通信
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
不行的VB 没指针 的


  • 凒獲鶑
  • 数据库
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
楼主把很多语言风格都拉在里面了啊……


  • dk_fangkai
  • 网络通信
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
VB6完全可以用函数指针!
搜索 dhRichClient,里面有个 constrator 对象,有个 StdCallDirect()方法,可以执行任意 module 或者 dll 中的函数,参数为函数指针,可以用addressof或者getProcAddress API 获得。
顺便 dhRichClient 还支持COM免注册,多线程,超多Vb本身没有的功能。


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 8回复贴,共1页
<<返回vb吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示