TC官方合作论坛

标题: 关于VB写插件的疑问,求大神解答 [打印本页]

作者: cylhb    时间: 2012-6-25 15:19
标题: 关于VB写插件的疑问,求大神解答
用VB写插件,有没有办法实现直接修改参数的值呢?
我用byref的话没效果..都是返回0
比如:  public function Add(byval a as int...,byval b as int...,byref c as int..)
                           c=a+b
          end funciont

  TC调用  插件.Add(5,15,X)     
想要的结果应该是:  X=20.   但事实上X=0

比如:  public function Add(byval a as int...,optional byval b as int..=10)
                          Add=a+b
          end funciont

想要的应该是:TC调用 插件.Add(5)   返回15  ,但是在TC中却必须写上2个参数,否则提示参数不匹配.这样 optional就失去了意义..


求解..

作者: 如此繁华    时间: 2012-6-25 17:05
Public Function Add(ByVal x As Integer, ByVal y As Integer) As Integer
Add=x+y
End Function



用这个 求采纳

作者: 如此繁华    时间: 2012-6-25 17:11
Public Function 消息框(ByVal 内容 As String) As String
MsgBox 内容
End Function
Public Function 加法(ByVal X As Long, ByVal Y As Long) As Long
加法 = X + Y
End Function
Public Function 减法(ByVal X As Long, ByVal Y As Long) As Long
减法 = X - Y
End Function
Public Function 乘法(ByVal X As Long, ByVal Y As Long) As Long
乘法 = X * Y
End Function
Public Function 除法(ByVal X As Long, ByVal Y As Long) As Long
除法 = X / Y
End Function

这是我写的一个 运算加减乘除和弹出消息框的插件
没有技术含量  呵呵

作者: 落幕    时间: 2012-6-25 17:55
TC调用时你的参数过多,在VB中的写法也不对
  public function Add(byval a as int...,byval b as int...,byref c as int..) ad integer
                          add=a+b
          end funciont

到TC中调用就是
add(参数1,参数2)
作者: cylhb    时间: 2012-6-25 18:31
你们都没明白偶的意思啊-.-

拿大漠做个比方吧;
整型 X,Y
dm.GetCursorPos(X,Y)
当我们调用这个函数.TC中整型的X,Y就会得到改变...

而我们用VB写,一般都只能通过返回值来得到我们想要的,难道无法通过传地址(byRef)来直接修改参数的值吗?
作者: cylhb    时间: 2012-6-25 18:33
回复 4楼落幕的帖子

public function Add(byval a as int...,byval b as int...,byref c as int..) ad integer  //int..是整型定义,只不过我省略了,偷懒
            c=a+b            
          end funciont

这种写法如果同样在vb调用是:
dim x as int...
    Add(13,15,x)
msgbox x   'x =28   //通过byref直接修改参数的值
作者: cylhb    时间: 2012-6-27 17:34
为什么 同样是 PVOID 参数,大漠调用成功,VB却失败~~~

求VB传址方法..
作者: jxwwdt    时间: 2012-11-25 09:25
呃。。。。
作者: slz336    时间: 2014-8-26 11:39
这个肯定是要支持的额




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1