我想做一件事情:
做一个COM+,它有一个方法,返回一个对象,这个对象本身又有一些方法。
我是这么写的(当然,不对)type
TCSDN = class(TMtsAutoObject, ICSDN)
protected
function GenerateReturnValue: ReturnValue; safecall; //我想返回一个TReturnValue类型的东西,不知道对不对
end; TReturnValue = class(TMtsAutoObject, IReturnValue)
protected
Val:String;
procedure setvalue(const inputvalue: WideString); safecall;
function getvalue: WideString; safecall;
end;implementationuses ComServ;function TCSDN.GenerateReturnValue: ReturnValue;
begin
Result:=TReturnValue.create;
end;procedure TReturnValue.setvalue(const inputvalue: WideString);
begin
val:=inputvalue;
end;function TReturnValue.getvalue: WideString;
begin
Result:=val;
end;现在的问题有几个,第一,我在TypeLibrary里设定GenerateReturnValue的返回值的时候应该怎么设置。我是尝试了很多类型,全说需要指针类型,可是我也是写的指针呀。
第二,象我这么些也不知道对还是不对 。我是在ASP里调用的,大概就想做下面的事情
<%
Set MyObject = Server.CreateObject("CSDN.CSDN")
set M = MyObject.GenerateReturnValue()
call M.setvalue(10)
Response.Write M.getvalue()
%>
真希望最后写出来一个10。可是根本运行不了。
我就不明白了,在Delphi里编译没有问题,但是不让保存,一保存就说需要指针类型。可是也能生成dll文件。为什么呢?说的可能有点乱,我的基础也不好,现在这不是向大家虚心的请教吗,请各位帮我理理头绪,谢谢。
做一个COM+,它有一个方法,返回一个对象,这个对象本身又有一些方法。
我是这么写的(当然,不对)type
TCSDN = class(TMtsAutoObject, ICSDN)
protected
function GenerateReturnValue: ReturnValue; safecall; //我想返回一个TReturnValue类型的东西,不知道对不对
end; TReturnValue = class(TMtsAutoObject, IReturnValue)
protected
Val:String;
procedure setvalue(const inputvalue: WideString); safecall;
function getvalue: WideString; safecall;
end;implementationuses ComServ;function TCSDN.GenerateReturnValue: ReturnValue;
begin
Result:=TReturnValue.create;
end;procedure TReturnValue.setvalue(const inputvalue: WideString);
begin
val:=inputvalue;
end;function TReturnValue.getvalue: WideString;
begin
Result:=val;
end;现在的问题有几个,第一,我在TypeLibrary里设定GenerateReturnValue的返回值的时候应该怎么设置。我是尝试了很多类型,全说需要指针类型,可是我也是写的指针呀。
第二,象我这么些也不知道对还是不对 。我是在ASP里调用的,大概就想做下面的事情
<%
Set MyObject = Server.CreateObject("CSDN.CSDN")
set M = MyObject.GenerateReturnValue()
call M.setvalue(10)
Response.Write M.getvalue()
%>
真希望最后写出来一个10。可是根本运行不了。
我就不明白了,在Delphi里编译没有问题,但是不让保存,一保存就说需要指针类型。可是也能生成dll文件。为什么呢?说的可能有点乱,我的基础也不好,现在这不是向大家虚心的请教吗,请各位帮我理理头绪,谢谢。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货