关于Activex Exe传递对象变量的问题
时间:2011-08-17
来源:互联网
先上代码:
Activex Exe工程名:TestClass
类模块:Class1
代码:
Option Explicit
Private m_StdTestPic As StdPicture
Public Property Get TestPic() As StdPicture
Set TestPic = m_StdTestPic
End Property
Public Property Set TestPic(ByVal StdValue As StdPicture)
Set m_StdTestPic = StdValue
End Property
标准Exe代码:
Option Explicit
Dim a As New Class1
Private Sub cmdCommand1_Click()
Set a.TestPic = Me.Icon
End Sub
问题:
当TestClass编译为ActiveX Exe时标准Exe执行
Set a.TestPic = Me.Icon出错
当TestClass编译为ActiveX Dll时标准Exe执行
正常执行
请高手指条明路,不单是StdPicture不能传递,像ImageList控件对象等都不能用
String等类型都能正常操作
Activex Exe工程名:TestClass
类模块:Class1
代码:
Option Explicit
Private m_StdTestPic As StdPicture
Public Property Get TestPic() As StdPicture
Set TestPic = m_StdTestPic
End Property
Public Property Set TestPic(ByVal StdValue As StdPicture)
Set m_StdTestPic = StdValue
End Property
标准Exe代码:
Option Explicit
Dim a As New Class1
Private Sub cmdCommand1_Click()
Set a.TestPic = Me.Icon
End Sub
问题:
当TestClass编译为ActiveX Exe时标准Exe执行
Set a.TestPic = Me.Icon出错
当TestClass编译为ActiveX Dll时标准Exe执行
正常执行
请高手指条明路,不单是StdPicture不能传递,像ImageList控件对象等都不能用
String等类型都能正常操作
作者: ftz820127 发布时间: 2011-08-17
Activex Exe在底层处理可能不太一样吧
String等类型(包含数组、记录集等还有很多),在底层数据结构中是包含长度等信息的。(参见 VB圣经)
这种情况是在set 时,处于不同线程的深拷贝,所以⋯⋯
在同一线程应该不会出现这种情况的吧?
你可以建一个类模块试试
以上纯属猜测。
String等类型(包含数组、记录集等还有很多),在底层数据结构中是包含长度等信息的。(参见 VB圣经)
这种情况是在set 时,处于不同线程的深拷贝,所以⋯⋯
在同一线程应该不会出现这种情况的吧?
你可以建一个类模块试试
以上纯属猜测。
作者: ybh37 发布时间: 2011-08-17
Windows下的一些说法是:基于线程保护,一个线程不可直接访问另一个线程的对象。只能通过线程间的3种通信方式来间接访问。
我不知道有没有这个说法,也不知道是不是这样的。
共同研究⋯⋯
我不知道有没有这个说法,也不知道是不是这样的。
共同研究⋯⋯
作者: ybh37 发布时间: 2011-08-17
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28