Delphi调用COM

zpskm 2008-01-21 02:06:59
各位大侠:

我用.net2003做了一ActiveX控件,里面有下面接口:
HRESULT GetFyData([out] VARIANT* data,[out,retval] BOOL*IsSucceed);

在Delphi6里导入后变成了下面的形式:
function GetFyData(out Data: OleVariant): Integer; safecall;

传过来的数据其实是一BYTE型数组,请问如何从Data: OleVariant中提取出来。

第二个问题:
HRESULT GetFyDataString([out, retval] BSTR* szData);

在DELPHI里对应接口function GetFyDataString: WideString; safecall;

但是调用时,WideString返回为空,并且调试时,在GetFyDataString处会提示 inaccessible value

请问要怎么做,才能返回数据 啊.

请大家帮忙啊,急死我了。
谢谢!!!
...全文
203 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
第二个问题我觉得应该是控件的问题,先想办法确定控件没有问题.
  • 打赏
  • 举报
回复

[code=PASCAL]
p_var:OleVariant;
c:array[0..254]of byte;



writeln( VarArrayDimCount( p_var ) );

for i:=VarArrayLowBound( p_var , 1 ) to VarArrayHighBound( p_var , 1 ) do
begin
c[i] := p_var[i];
end;
[/code]
gjw310 2008-01-22
  • 打赏
  • 举报
回复
不懂,帮顶,学习

5,927

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧