欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 关于VBA和C++的混合编程

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有4516人关注过本帖树形打印复制链接

主题:关于VBA和C++的混合编程

帅哥哟,离线,有人找我吗?
zyyh
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:52 积分:0 威望:0 精华:0 注册:2016/5/12 15:35:50
关于VBA和C++的混合编程  发帖心情 Post By:2016/5/14 16:34:26 [显示全部帖子]

原帖子 是这个 http://www.weistock.com/bbs/dispbbs.asp?boardid=5&Id=11505
我试验到了 

Sub Test()
Dim MyAddin '创建一个变量

Set MyAddin = CreateObject("MyActiveXDemo.VBSAddin")
MyAddin.MyTest(400)

End Sub


这个已经试验成功了,成功之后就困惑了  

MyAddin.MyTest(canshu)  

这个参数必须是常量啊  数组啊,变量啊  包括两个常量都传递不进去,非常像线程的传递参数,但是限制比线程的传递参数还多。

请问下 是我理解有问题 还是测试有问题  或者说  金字塔本身不支持这样的结构


 回到顶部
帅哥哟,离线,有人找我吗?
zyyh
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:52 积分:0 威望:0 精华:0 注册:2016/5/12 15:35:50
  发帖心情 Post By:2016/5/14 20:15:01 [显示全部帖子]


Sub Test()
Dim MyAddin '创建一个变量

Set MyAddin = CreateObject("MyActiveXDemo.VBSAddin")

dim a

a=400
MyAddin.MyTest(a)

End Sub

就会报错 报错是类型不匹配

Sub Test()
Dim MyAddin '创建一个变量

Set MyAddin = CreateObject("MyActiveXDemo.VBSAddin")

dim a,b

a=400

b=300
MyAddin.MyTest(a,b)

End Sub

报错 就是 SUB过程里面 不允许传递括号,若改成 msgbox MyAddin.MyTest(a,b)  就会报错为 a.mytest 参数错误



 回到顶部
帅哥哟,离线,有人找我吗?
zyyh
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:52 积分:0 威望:0 精华:0 注册:2016/5/12 15:35:50
  发帖心情 Post By:2016/5/14 20:20:03 [显示全部帖子]

Sub Test()
Dim MyAddin '创建一个变量

Set MyAddin = CreateObject("MyActiveXDemo.VBSAddin")

MyAddin.MyTest(400)

End Sub

就是正确的

Sub Test()
Dim MyAddin '创建一个变量

Set MyAddin = CreateObject("MyActiveXDemo.VBSAddin")

dim a

a=400
MyAddin.MyTest(a)

msgbox 11

End Sub

就是什么都不管  也不执行下去  msgbox 都不执行了



 回到顶部
帅哥哟,离线,有人找我吗?
zyyh
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:52 积分:0 威望:0 精华:0 注册:2016/5/12 15:35:50
  发帖心情 Post By:2016/5/16 14:07:05 [显示全部帖子]

其它问题 都解决了 原因是因为变量采用了自动的变量,VB6.0  但是那个数组 实在不知道该怎么传,能否写下示例 

Sub Test()
Dim MyAddin '创建一个变量

Set MyAddin = CreateObject("MyActiveXDemo.VBSAddin")

dim a(),b()

redim a(1)

a(0)=1

a(1)=2

'要求此处传递一个数组进去 返回一个数组出来

b=MyAddin.MyTest(a)

End Sub


谢啦


 回到顶部
帅哥哟,离线,有人找我吗?
zyyh
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:52 积分:0 威望:0 精华:0 注册:2016/5/12 15:35:50
  发帖心情 Post By:2016/5/16 14:46:22 [显示全部帖子]

我自己搞定了  我确实传递数组进去了  并且能够传递出来  采用的不是C++ 而是 VB6.0

 回到顶部
帅哥哟,离线,有人找我吗?
zyyh
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:52 积分:0 威望:0 精华:0 注册:2016/5/12 15:35:50
  发帖心情 Post By:2016/5/16 14:48:15 [显示全部帖子]

原因是因为 VBA采用了 自动变量 

 回到顶部