![](/img/trans.png)
[英]Getting “Invalid Floating Point” error with ActiveX Control in Delphi
[英]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;
我认为您不需要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.