DELPHI 6 中的 SafeCall(70分)

  • 主题发起人 主题发起人 virtualmfc
  • 开始时间 开始时间
V

virtualmfc

Unregistered / Unconfirmed
GUEST, unregistred user!
我在使用DELPHI6创建Automation Object的时候,编写的接口方法声明,
其返回值不能为DOUBLE,只能是HRESULT,但是使用SAFECALL应该就可以了。
可是类型库不接受,总报告上面的问题,不知在DELPHI中该怎么办?请高手指教.!
 
写成COM+吧,什么类型都可以。Automation Object的返回类型只能是HRESULT.
你在里面加过属性吗?如何给它赋值?
 
用COM+能写成类似Automation Object吗
另外,我只想通过方法来,不想通过属性因为方法更直观.
 
加一个[ret,out]类型的指针参数
 
加一个参数:aResult [out, retval]
Try
...
aResult := ...
Result := S_OK;
Except
On e : Exception Do
Result := SafeCallError( e, Self ); // 也可能是 SafeCallException ,我的D6帮助在98下有问题,查不到。
End;
 
同意楼上的说法,在类型库中的具体操作如下:
  在Parameters 页中添加参数,Type 设为double*,Modifer页中去掉In,选中RetVal,
这时Out会自动选中,刷新!再看看你的代码,一切OK!
自动化操作结果只能返回HRESULT,用于判断操作成功否,所以你需要的中间结果只
能通过参数传递,而且由于C语言中都是传值的,所以要加上一个*号,表示传地址。
 
后退
顶部