繁体   English   中英

ActiveX 和 MCVE 错误

[英]Error with ActiveX and MCVE

在我搜索返回 S_OK 而不是 S_FALSE 的错误时(请参阅我之前的消息),我制作了一个非常小的服务器,只有一个方法发送 S_FALSE(HResult 类型),不幸的是我在小客户端程序中出错:项目 TestTest.exe 已发送异常类 EOleSysError 并带有消息“变量类型无效”(这是引发错误的指令Return:=coll.Method )。 任何的想法? .ridl 服务器代码:

function TTest1.Method: HResult;
begin
  Result:=S_FALSE;
end;

和客户端代码:

procedure TForm1.Button1Click(Sender: TObject);
var
  coll:variant;
  Return:HResult;
begin
  coll:= CreateOLEObject('Project.Test1');
  Return:=coll.Method;
  if Return=S_FALSE then showmessage('OK') else showmessage('ERROR!!!!!!!!!!!!!!!!');
end;

对于完整的问题,我做了一个 MCVE:服务器:在此处输入链接描述客户端:在此处输入链接描述

我认为您不需要HRESULT类型的参数“值”。 您可以删除该参数:该方法将已经返回HRESULT 如果您想使用参数进行测试,请尝试将 'value' 更改为BSTR [in] 并在那里传递任何字符串。 它应该工作。

Return:=coll.Method('place the parameter string here');

干杯

我不知道为什么你坚持使用HRESULT返回值,为什么你不创建带有参数value, type : long , modifier : in HRESULT方法value, type : long , modifier : in然后返回你想要的任何东西。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM