Invoke与返回值 ( 积分: 300 )

  • 主题发起人 主题发起人 crazycock
  • 开始时间 开始时间
C

crazycock

Unregistered / Unconfirmed
GUEST, unregistred user!
参考:http://www.delphibbs.com/delphibbs/dispq.asp?lid=3225822
如果不愿意看那个帖子,觉得太长。那么请回答:

(1)Invoke返回值如果用pVarResult带回,需要怎么写?方法的返回值总是HRESULT,我不知道在ActiveForm里面怎么写代码。(指的是ActiveX那边,类型库编辑器那里怎么编辑?in/out参数怎么设置?)

(2)我建立的ActiveForm类型的ocx(算是inproc吧),能否传一个结构体的指针到ocx内部,然后由ocx编辑这个结构体的内容?(事实证明,这样做是可以的,程序可以运行并且正确计算出结果填入结构体,只是程序一般运行到半分钟到1分钟之间就会出错自动关闭,当把Invoke这行代码屏蔽就没有任何问题)

(3)传递指针的时候,用Cardinal(@pr)后传过去,然后在ocx内部再pr=Pointer()方法得到原地址,正确么?指针应该是无符号数吧?
 
参考:http://www.delphibbs.com/delphibbs/dispq.asp?lid=3225822
如果不愿意看那个帖子,觉得太长。那么请回答:

(1)Invoke返回值如果用pVarResult带回,需要怎么写?方法的返回值总是HRESULT,我不知道在ActiveForm里面怎么写代码。(指的是ActiveX那边,类型库编辑器那里怎么编辑?in/out参数怎么设置?)

(2)我建立的ActiveForm类型的ocx(算是inproc吧),能否传一个结构体的指针到ocx内部,然后由ocx编辑这个结构体的内容?(事实证明,这样做是可以的,程序可以运行并且正确计算出结果填入结构体,只是程序一般运行到半分钟到1分钟之间就会出错自动关闭,当把Invoke这行代码屏蔽就没有任何问题)

(3)传递指针的时候,用Cardinal(@pr)后传过去,然后在ocx内部再pr=Pointer()方法得到原地址,正确么?指针应该是无符号数吧?
 
如果是inproc的话这样做应该是没问题的,主要指针指向的数据在运行时不能被清空,我是在Automation中测试的,运行多长时间也没问题。
 
我现在怀疑这个方法也是没有问题的。可能问题出在同步上?或者你说的这个数据被清空的问题上?还在测试中,前段时间又忙其他东西了~~
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部